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”---》保存更改。

