Gitlab自動觸發Jenkins構建打包
一、目的
在部門的測試環境中,開發人員一旦向gitlab倉庫提交成功程式碼,gitlab就會自動觸發jenkins構建專案。當然在構建後還可以新增專案部署或者自動化測試的指令碼。這裡只針對測試環境。
二、Jenkins配置
2.1 安裝Gitlab Hook Plugin外掛:
系統管理->管理外掛->可選外掛->選擇安裝 Gitlab Hook Plugin和Build Authorization Token Root Plugin外掛。 如果沒有安裝Build Authorization Token,後面gitlab在Test hook時會報403錯誤。
2.2 建立測試Project
在gitlab上已建好了bd-ci-test的專案,且Jenkins使用者擁有該專案的相關讀寫許可權。
在jenkins新建bd-ci-test專案:
原始碼管理選擇git,新增jenkins使用者在gitlab上的憑據(即使用者名稱密碼),這裡選擇打包的分支為release分支,這裡根據需求自己填寫(預設為master分支)
構建觸發器,勾選gitlab-ci,記住後面的GitLab CI Service URL後面要填在gitlab的webhooks中:
2.3 根據branch分支觸發打包條件
現在有develop分支和release分支,如果不做這一步,開發只要向gitlab中提交程式碼(develop分支或者release分支),那麼jenkins就會進行構建打包,下面我們設定判斷過濾只有向release分支push程式碼時,才會觸發構建打包。
點開高階,填寫根據正則過濾branch,寫法如下,並generate一個token,不然後面webhooks會報403:
三、Gitlab配置
在git專案配置介面設定連結和token。這裡要注意路徑,根據部署jenkins的路徑填寫,不然會報404錯誤,並填寫剛剛對應的token資訊,儲存:
點選測試,返回200的話就表示成功了。其他錯誤可以根據gitlab日誌來排除原因gitlab/gitlab-rails/production.log:
四、驗證測試
4.1 向gitlab提交程式碼:
#vim a.txt 修改a.txt檔案並提交 #git add a.txt #git commit -m 'alter a.txt' [release 094f663] alter a.txt 1 files changed, 0 insertions(+), 2 deletions(-) #git push origin release Password: Counting objects: 5, done. Delta compression using up to 4 threads. Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 283 bytes, done. Total 3 (delta 0), reused 0 (delta 0) b32472e..094f663 release -> release
4.2 jenkins控制檯輸出資訊:
可以觀察到jekins已經自動構建專案了:
----------------------------我也是有底線的-----------------------------