1. 程式人生 > >gitlab實現webhook觸發jenkins 自動,構建,測試,push webhook構子 總結

gitlab實現webhook觸發jenkins 自動,構建,測試,push webhook構子 總結

ref 安裝 harbor 14. 允許 安全管理 rbo 觸發器 代碼

最新一直在學習 工作 + 學習 去掉 90% 所以blog 一直沒更 真是很不好! exsi ceph gitlab jenkins harbor k8s docker-compose apollo springboot dubbo 太多太多 。。。整合

主題:

如何設置GitLab以及Jenkins,實現每次GitLab上有提交事件的時候,都能觸發Jenkins執行相應的操作,總結一下 主要分為以下幾個步驟:

1、新建GitLab測試用例

進入個人GitLab賬號,在右上角的加號中,選出GitLab 的 New Project,可以新建個人的GitLab工程:

技術分享圖片

其余都走默認的設置,填寫好project的名字,可以創建一個新的project,如圖:

技術分享圖片

2、設置Jenkins

2.1 首先安裝 GitLab plugin

在“系統管理”->“插件管理”,查看已安裝插件,輸入 GitLab, 看看是否已經安裝,如果沒有,則 查看 可選插件,搜索 GitLab,安裝後重啟即可。

2.2 新建一個測試工程

新建一個job,如圖:

技術分享圖片

源碼管理選擇Git, 輸入剛剛新建的GitLab的 URL以及個人的API_TOKEN:

技術分享圖片

目前只有master分支,後續可以根據不同分支對應設置不同的url,監聽不同分支的情況。
在構建觸發器選項中,勾選 Build when a change is pushed to GitLab ,該選項最後的URL就是這個工程的URL路徑,註意如果是本機,則會顯示localhost, 可以將localhost改為個人的ip。
註意這個url, 下一步會用到這個url。可以在工程中設置構建後的操作後登到另一臺 centos 執行 執行一句shell腳本:

需要先添加密鑰 憑據 在添加 host主機

主界面 >> 系統管理 >>> 系統設置 >> SSH remote hosts

技術分享圖片

返加主界面 >>> 點擊: demo(project) >> 配置

技術分享圖片

3. 設置GitLab的webhook

GitLab版本在不斷變換,該版本的GitLab,如圖可以找到WebHook的設置入口:

技術分享圖片

填入的url就是剛剛測試, 勾選push Event,這樣就是每次有push操作的時候,就會觸發webhook,執行填入的url中的操作:

技術分享圖片

點擊保存,然後點擊Test,可以測試是否可以執行,一般會報這些錯誤:

3.1 anonymous build

技術分享圖片

不支持匿名build, 這是回到jenkins中,在 系統管理 -> 全局安全管理中, 勾選 匿名用戶具有可讀權限 如圖:

技術分享圖片

然後點擊應用和保存, 回到GitLab,繼續測試. 如果繼續抱該錯,則進入剛剛構建的工程,點擊 構建觸發器中選中的Build When a change is pushed右下角的高級選項,有一個Secret token,點擊 Generate,會生成一個安全代碼:

技術分享圖片\

技術分享圖片

復制到webhook中的url下面:

技術分享圖片

然後保存,再測試,就可以通過,這時候會觸發jenkins執行一次操作:

技術分享圖片

技術分享圖片

看看控制臺輸出:

技術分享圖片

3.2 valid crumb

如果報該錯,則在安全設置中,不勾選 CSRF, 如圖:

技術分享圖片

測試通過,後續可以在此基礎上拓展, 監聽不同GitLab,同一個GitLab的不同分支的push操作,來分別觸發jenkins端執行對應的操作。


4. gitlab 用管理用戶(root)登陸 修改如下: 允許gitlab 本地局域網訪問

技術分享圖片

技術分享圖片

gitlab實現webhook觸發jenkins 自動,構建,測試,push webhook構子 總結