在《Jenkins:常用的構建觸發器》中,我們說了Jenkins的4種內置構建觸發器。其中輪詢SCM可以實現Gitlab代碼更新時,項目自動觸發構建。但是該方案的性能不佳,因爲需要定時掃描整個項目的代碼。那有沒有更好的方案呢?答案是有的。那就是利用Gitlab的webhook實現代碼push到倉庫,立即觸發項目自動構建。
- 輪詢SCM原理示意圖
- webhook原理示意圖
1. 安裝Gitlab Hook插件
需要安裝兩個插件:Gitlab Hook
和Gitlab
。
2. Jenkins設置
- 配置工程,使其能夠實現自動構建
- 取消啓用
/project
端點授權(Manage Jenkins->Configure System)
3. Gitlab配置webhook
- Gitlab中開啓webhook功能
使用root賬戶登錄到後臺,點擊:Admin Area -> Settings -> Network
,勾選:Allow requests to the local network from web hooks and services
- Gitlab中添加項目webhook地址
點擊:項目->Settings->Webhooks
。
至此,當我們提交代碼時,就會自動觸發Jenkins的工程構建。