Jenkins配置Gitlab自動觸發構建


 

 

Jenkins配置Gitlab自動觸發構建

現在要讓gitlab去觸發,讓gitlab點擊立即構建,這也是通過插件實現

 

 Git push 觸發自動構建 

 

在我們已經成功實現了將 Gitlab 中 monitor 倉庫的代碼部署到 nginx服務中,但是每次部署需要我們手動去點擊“立即構建”,下面我們將實現當 Gitlab 收到push 請求后,就觸發 Jenkins 構建,將倉庫的變化部署到 nginx 服務中。


Jenkinsjob 配置構建觸發器

回到 My-freestyle-job 的配置頁面,下拉到構建觸發器部分

 

 

 勾選 gitlab 觸發選項,進入具體配置頁面

點擊高級

 Enabled GitLab triggers 允許gitlab觸發

push events 允許push  只要gitlab收到push操作 構建就執行 觸發事件

Opened Merge Request Events  合並請求  合並操作也可以觸發

只有兩種方式可以觸發   push上去觸發構建,  執行merge請求 把代碼合並進來了

 

 

 允許哪個分支 , 當哪個分支收到push或者merge請求,默認為所有分支 收到觸發制的時候 就是執行job

 

可以單獨定義 只允許master分支 才構建

根據自己需求定義

 

 

 token作用,訪問webhooks URL 需要攜帶token過來,才能觸發,有url也不行,有url和token才觸發

 

 

 

 

配置完成后,保存配置。 

 

Gitlab 倉庫配置 webhooks

當倉庫收到push 不是gitlab收到 是某一個倉庫收到 push操作或者merge請求事件  才會觸發構建 ,和倉庫相關

進入 Gitlab 中 monitor 倉庫的設置頁面,

 

 

 進入集成配置頁面,復制 jenkins 觸發器配置頁面的 url 及 Token

觸發事件 默認事件類型是push

 

 

 

配置完成后,添加weohooks

 

 

 

添加了一條 ,在頁面下面測試觸發設置  測試用test 測試用push events 推送事件

 

 

 

200顯示成功,執行成功了

 

 

我們在 jenkins job 主頁面看到構建任務被觸發。

在gitlab 模擬一個push請求過來, jenkins自動觸發構建

 

觸發成功 

剛才是模擬請求

這次執行構建任務的時候,我們沒有點立即構建

這是模擬push操作

 


接着我們將倉庫克隆到客戶端,在客戶端測試觸發 push 操作

admin可以直接向master push,dev用戶不可用

克隆 monitor 倉庫到 ci-node1 本地 ci-node1上綁定是root用戶  

 

[root@ci-node1 data]# git clone git@192.168.31.11:test/monitor.git
Cloning into 'monitor'...
remote: Counting objects: 435, done.
remote: Compressing objects: 100% (372/372), done.
remote: Total 435 (delta 53), reused 435 (delta 53)
Receiving objects: 100% (435/435), 8.78 MiB | 0 bytes/s, done.
Resolving deltas: 100% (53/53), done.

 

cd monitor 倉庫里面 更改 index.html 文件,push 至 Gitlab 

[root@ci-node1 data]# cd monitor/
[root@ci-node1 monitor]# vim index.html

 

 

 

改紅色框主的

 

 

 改后 wq 保存退出

 

 

 修改好index.html 文件提交

[root@ci-node1 monitor]# git add .
[root@ci-node1 monitor]# git commit -m "modify index.html on ci-node1"
[master b364e08] modify index.html on ci-node1
 1 file changed, 1 insertion(+), 1 deletion(-)

發送push push成功

[root@ci-node1 monitor]# git push -u origin master
Counting objects: 5, done.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 315 bytes | 0 bytes/s, done.
Total 3 (delta 2), reused 0 (delta 0)
To git@192.168.31.11:test/monitor.git
   f6070e1..b364e08  master -> master
Branch master set up to track remote branch master from origin.

看看gitlab 倉庫有沒有變化,Gitlab 收到本次推送的內容, 

 

 

 

 

 

 

Jenkins 對應的 job 已經觸發構建

 

 

這個地方改變 代表部署成功 

網站 index.html 內容被更新

構建前:

構建后

 

同時我們在 jenkins 中 job 主頁面的“新修改記錄”部分可以看到我們的修改日志。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM