分支合并前,通常需要在本地進行合并測試,看是否有代碼沖突,編譯是否通過,沒有問題了,才敢把合并后的代碼往主干分支提交,如果分支很多怎么辦? 如果日常需要經(jīng)常合并怎么辦? 每次手動來這么一個測試步驟會不會很煩? 現(xiàn)在有這么一個插件,可以在服務器進行自動合并檢測,并報告給GitLab, 用戶可以愉快的進行合并分支。
一、在jenkins中安裝Gitlab Merge Request Builder?插件
在可選插件中選擇該插件并進行安裝,如圖

二、在jenkins系統(tǒng)設(shè)置中設(shè)置Gitlab Merge Request Builder
安裝好插件后,在首頁中點擊“系統(tǒng)管理”-》“系統(tǒng)設(shè)置”可對Merge Request進行設(shè)置,如圖

jenkins UserName:這個用戶必須是GitLab用戶,用于來訪問GitLab的
Jenkis Api Token:這個Token可以從GitLab獲取到

Crontab line:定時時間,推薦每5分鐘檢測一次
三、新建Job
首頁點擊“新建”,輸入Job名,選擇“構(gòu)建一個自由風格的軟件項目”,
配置Git源碼,如圖:
Credentials:不知道配置的請參考《Jenkins+Gradle+Git+Centos 實現(xiàn)android持續(xù)集成、打包(超詳細)》
${gitlabSourceBranch}:合并的源分支,如develop,如果測試不通過,可直接輸入develop分支名
${gitlabTargetBranch}:合并的目標分支,如master,如果測試不通過,可直接輸入master

配置構(gòu)建觸發(fā)器,選擇GitLab Merge Requests Builder
GitLab Project Path: 輸入Git地址尾后部分,如git地址是git@gitlab.xxx.com:Android/long_temp.git,輸入Android/long_temp

假如還需要在合并后測試是否編譯通過,在構(gòu)建步驟中,選擇Invoke Gradle script,配置如下:

點擊“保存”。
測試如下:
在GitLab中發(fā)起一個Merge Request

Jenkins在5分鐘后(配置的時間)檢測到這個pull Request,隨后進行合并和構(gòu)建的工作,并通知GitLab,如果測試通過(如圖Tests Passed消息),點擊Accept Merge Request,合并工作即可完成。
