1 - Jenkins遠程構建
可以通過以POST方式調用API來觸發構建任務的執行
http://<IP>:<PORT>/job/<JOB NAME>/build?token=<TOKEN>&cause=<CAUSE>
1.1 - 創建用戶token
1.2 - 配置任務的觸發器
在任務的“構建觸發器”部分“觸發遠程構建 (例如,使用腳本)”添加令牌
1.3 - 遠程觸發構建
在瀏覽器中訪問如下URL
http://192.168.16.200:8080/job/test/build?token=RemoteTesting&cause=testtrigger
瀏覽器不會有反應,但Jenkins后台將收到請求並開始構建
1.4 - 查看任務執行情況
2 - GitLab觸發構建
2.1 下載插件
當GitLab分支有代碼提交或者合並請求時,通過Webhook配置可以自動觸發執行對應的Jenkins任務。
需要在Jenkins上安裝如下插件:https://plugins.jenkins.io/gitlab-plugin
2.2 Jenkins安全配置
系統管理---》全局安全配置,取消“防止跨站點請求偽造”
2.3 Jenkins任務配置
配置源碼管理
分支為空,表示默認任何代碼改動的分支都會拉取。
配置“構建觸發器”
注意:
- GitLab webhook URL,要在GitLab中配置。
- 點擊Secret token部分的Generate按鈕,生成令牌,這個令牌要在GitLab中配置。
2.4 GitLab項目配置
在project---》Settings---》Integrations---》配置Jenkins生成的GitLab webhook URL和Token,並指定觸發條件。
2.5 測試GitLab Webhook
在GitALab的項目添加webhook 成功后,可以通過提供的Test功能測試配置是否成功。
選擇Test按鈕下的操作類型
如果配置成功,那么Test的結果會顯示“Hook executed successfully: HTTP 200”
Jenkins任務會被觸發執行
3 - 其他工程構建后觸發
4 - 問題處理
GitLab通過webhook向Jenkins發送請求,報錯“Requests to the local network are not allowed”
問題分析
Gitlab10.6 版本以后不允許向本地網絡發送webhook請求,如果想向本地網絡發送webhook請求,則需要使用管理員帳號登錄做指定配置。
處理方法
Admin area---》Settings---》OutBound Request,勾選“Allow requests to the local network from hooks and services”---》保存更改。