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

最新一直在學習 工做 + 學習 去掉 90%   因此blog  一直沒更 真是很很差!  exsi ceph gitlab jenkins harbor k8s  docker-compose apollo  springboot  dubbo      太多太多 。。。整合  git

主題:web

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

一、新建GitLab測試用例docker

進入我的GitLab帳號,在右上角的加號中,選出GitLab 的 New Project,能夠新建我的的GitLab工程:shell

 

其他都走默認的設置,填寫好project的名字,能夠建立一個新的project,如圖:centos

 

二、設置Jenkins安全

2.1 首先安裝 GitLab pluginspringboot

在「系統管理」->「插件管理」,查看已安裝插件,輸入 GitLab, 看看是否已經安裝,若是沒有,則 查看 可選插件,搜索 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 本地局域網訪問

 

 

相關文章
相關標籤/搜索