1. 程式人生 > >Gitlab自動觸發Jenkins構建打包

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已經自動構建專案了:

----------------------------我也是有底線的-----------------------------