天天看點

jenkins+gitlab 識别merge request事件并自動合并建構jenkins部分的配置gitlab部分的設定

jenkins+gitlab 識别merge request事件并自動合并建構

  • jenkins部分的配置
    • 1. 安裝gitlab plugin插件
    • 2. 設定跟蹤source分支
    • 3. 設定建構前合并分支到目标分支
    • 4. 設定觸發器
  • gitlab部分的設定
    • 1. 添加webhook
    • 2. 配置webhook

版本說明:

jenkins v2.234 docker方式安裝

gitlab-ce 12.10.3 docker方式安裝

jenkins部分的配置

1. 安裝gitlab plugin插件

jenkins+gitlab 識别merge request事件并自動合并建構jenkins部分的配置gitlab部分的設定
jenkins+gitlab 識别merge request事件并自動合并建構jenkins部分的配置gitlab部分的設定

2. 設定跟蹤source分支

源碼管理配置變量,動态跟蹤請求合并的分支

通路gitlab-plugin插件網站:https://github.com/jenkinsci/gitlab-plugin

可以知道通過變量gitlabSourceBranch擷取到source分支

jenkins+gitlab 識别merge request事件并自動合并建構jenkins部分的配置gitlab部分的設定

3. 設定建構前合并分支到目标分支

Advanced checkout behaviours 用來修改checkout的逾時(工程較大時預設10min可能不夠)

Advanced clone behaviours 用來修改clone或fetch的逾時(理由同上)

Prune stale remote-tracking branch 用來跟新無效的遠端分支。

Merge before build 關鍵選項,本文的目的就是在同意merge request前建構,友善排除問題。如果目标分支需要動态擷取可以用變量gitlabTargetBranch代替

jenkins+gitlab 識别merge request事件并自動合并建構jenkins部分的配置gitlab部分的設定

4. 設定觸發器

因為gitlab同意或者直接關閉Merge Request時不需要再次觸發建構,是以在這裡隻處理Open Merge Request Event。

Gitlab webhook URL 部分是用來配置gitlab的,

token 也是用來配置gitlab的。

filter branch by name的配置說明下:include表示需要跟蹤的target branch用逗号分隔。

jenkins+gitlab 識别merge request事件并自動合并建構jenkins部分的配置gitlab部分的設定

其他的建構方法在此不表。

至此jenkns部分設定結束。

gitlab部分的設定

1. 添加webhook

jenkins+gitlab 識别merge request事件并自動合并建構jenkins部分的配置gitlab部分的設定

2. 配置webhook

這裡的URL就是上面配置觸發器時的擷取

token的配置同理

配置Merge request events才觸發這個webhook

jenkins+gitlab 識别merge request事件并自動合并建構jenkins部分的配置gitlab部分的設定

至此,目的達到,當開發人員通過gitlab 打開一個merge request時,會自動觸發jenkins合并與建構,可以通過配置jenkins的郵件提醒,建構成功後通知管理人員,這時再經過必要的代碼review後,管理人員正式同意合并代碼,此時不會再觸發建構;如果建構失敗或其他代碼review不通過,則管理人員關閉此合并請求,等待開發人員修改後重新提出申請,此時也不會觸發建構。

繼續閱讀