網頁

2023/10/25

Jenkins Freestyle project 設定GitLab觸發專案建置

Jenkins設定由GitLa觸發Freestyle專案建置的方式如下。


所謂GitLab觸發專案建置是指,當GitLab發生某個事件時,例如有新的程式碼提交、Merge Request被核准、或合併完成時,Jenkins會自動拉取當下的程式碼進行建置(build)。其背後的原理是利用在GitLab設定Webhook來在事件發生時發送請求命令Jenkins進行建置。

範例環境:

  • Jenkins Version 2.414.3
  • GitLab Community Edition 12.3.2

安裝GitLab plugin

登入Jenkins管理介面,點選左側的[Manage Jenkins](要有權限才會顯示)。



在[Manage Jenkins]頁面,在[System Configuration]區塊下點選[Plugins]。



在[Plugins]頁面,點選左側的[Available plugins],然後在上方搜尋欄位輸入"GitLab",在下面找到GitLab Plugin並勾選,然後按右上角的[Install]按鈕安裝。



在[Plugins]頁面,點選左側的[Installed plugins],右側為已安裝的plugin清單,找到GitLab Plugin並點選右側的[Enabled]開關開啟(通常預設已經是開啟的)。




設定Jenkins Build Triggers

前往專案的[Configure]頁面,
在[Build Triggers]區塊勾選[Build when a change is pushed to GitLab. GitLab Webhook URL:<jenkins-project-url>],<jenkins-project-url>是此Jenkins專案提供給GitLab發送建置請求的URL,通常為http://<jenkins_domain>/project/<project_name>,例如http://jenkins.abc.com/project/demo-app,複製起來待會要設定到GitLab的webhook。
勾選該下面的[Push Events]。



點選下方的[Advanced]按鈕展開進階選項,點選下方[Secret token]欄位旁的[Generate]按鈕,然後會在[Secret token]欄位會產生一組token,複製起來待會要設定到GitLab的Webhook。




設定GitLab Webhook

前往GitLab的專案,點選左側選單[Settings]下的[Integrations]。



在[Integrations]頁面,
[URL]欄位輸入Jenkins project trigger的url,例如http://jenkins.abc.com/project/demo-app
[Secret Toek]欄位輸入Jenkins project trigger的secret token,例如73c1bd131932fd0737f3b5f52b54712e



在[Trigger]下勾選[Push events]。



點選[Add webhook]加入此Webhook。



然後在下方的Webhooks會新增加入的Webhook,點選[Test]然後選擇[Push events]測試。



若設定成功會顯示"Hook executed successfully: HTTP 200"。



完成以上設定後,push提交到GitLab專案就會觸發Jenkins的建置工作。

沒有留言:

張貼留言