原 薦 Gitlab Merge Request Builder Plugin 配置小記
發(fā)表于1年前(2014-07-09 00:46)
閱讀(1779) | 評(píng)論( 1)
4人收藏此文章,
我要收藏
贊0
7月18日 杭州 OSC 源創(chuàng)會(huì) —— 開源的 Swift 2.0
摘要
以前在給一些開源項(xiàng)目貢獻(xiàn)代碼的時(shí)候,在github上一提交pull request或者提交的分支代碼更新了的時(shí)候,jenkins就會(huì)自動(dòng)把代碼進(jìn)行merge并且運(yùn)行單元測試,當(dāng)時(shí)看了心里就2個(gè)字: NB!
那個(gè)時(shí)候心里就想,啥時(shí)候我也得弄這么一個(gè)高大上的玩意兒。隨著 gitlab 在工作中的逐漸使用,這個(gè)想法越來越強(qiáng)烈。上周末搜來搜去,發(fā)現(xiàn)jenkins還真有一款針對(duì)gitlab的merge request的插件:Gitlab Merge Request Builder Plugin
當(dāng)時(shí)就心癢難耐,開始看著說明一步步的配置。
以前在給一些開源項(xiàng)目貢獻(xiàn)代碼的時(shí)候,在github上一提交pull request或者提交的分支代碼更新了的時(shí)候,jenkins就會(huì)自動(dòng)把代碼進(jìn)行merge并且運(yùn)行單元測試,當(dāng)時(shí)看了心里就2個(gè)字: NB!
那個(gè)時(shí)候心里就想,啥時(shí)候我也得弄這么一個(gè)高大上的玩意兒。隨著 gitlab 在工作中的逐漸使用,這個(gè)想法越來越強(qiáng)烈。上周末搜來搜去,發(fā)現(xiàn)jenkins還真有一款針對(duì)gitlab的merge request的插件:Gitlab Merge Request Builder Plugin
當(dāng)時(shí)就心癢難耐,開始看著說明一步步的配置。配置分成2大部分:
第一部分: 安裝插件&基礎(chǔ)設(shè)置
首先安裝插件,要求jenkins版本大于1.563,好在jenkins升級(jí)比較方便,在系統(tǒng)管理界面就有個(gè)大大的升級(jí)按鈕,果斷升級(jí)到1.570。
在 系統(tǒng)管理->插件管理->可選插件 里面搜出來 Gitlab Merge Request Builder 安裝并重啟 jenkins,官方文檔在這里強(qiáng)調(diào)了需要重啟jenkins。
重啟之后,進(jìn)入系統(tǒng)管理->系統(tǒng)設(shè)置 里面,能發(fā)現(xiàn)里里面多了Gitlab Merge Request Builder的配置項(xiàng)
Gitlab Host URL 里填gitlab的服務(wù)地址,比如http://192.168.0.1
Jenkins Username 里面填寫jenkins的用戶名,在這里需要在gitlab里面給jenkins創(chuàng)建一個(gè)跟你其他小組成員一樣的賬戶,以便jenkins能在項(xiàng)目中發(fā)言
Jenkins API Token 是jenkins在getlab中賬戶的一個(gè)權(quán)限校驗(yàn)碼,這個(gè)碼可以在使用jenkins賬戶登錄gitlab后進(jìn)入賬戶編輯界面的Account標(biāo)簽頁中查到,在那里面叫Private token
Crontab line 主要是配置jenkins多久去檢查一次merge request的變更, 默認(rèn)是 */5 * * * * 即 5分鐘一次, 不過jenkins建議改成 H/5 * * * * 貌似可以改善并發(fā)。聽人勸吃飽飯,我把*/5換成了H/5至今為止貌似還沒發(fā)現(xiàn)問題。
Enable build triggered message 是指在插件激活的時(shí)候在merge request界面發(fā)送一條jenkins已經(jīng)開始工作的消息,不過我感覺,調(diào)試的時(shí)候還有點(diǎn)用,正常使用就有點(diǎn)啰嗦了。
Default success message、Default unstable message以及Default failure message三個(gè)配置分別是一個(gè)成功和兩個(gè)失敗的提示消息模板,干巴巴的字感覺不是很明晰,所以可以在里面增加emoji表情,比如 :smiley: 或者 :broken_heart:
Ignore SSL Certificate Errors 顧名思義是忽略https的證書錯(cuò)誤,這個(gè)選項(xiàng)對(duì)假設(shè)在局域網(wǎng)內(nèi)的gitlab私服很有用,果斷勾上!
都配置好了之后不要忘記點(diǎn)擊 保存 按鈕
第二部分: 創(chuàng)建任務(wù)
創(chuàng)建任務(wù)一開始和普通流程沒啥兩樣,點(diǎn)擊新建創(chuàng)建一個(gè)新任務(wù),然后選擇你需要的任務(wù)類型,因?yàn)槲沂莔aven項(xiàng)目所以我選了構(gòu)建一個(gè)maven2/3項(xiàng)目,填好項(xiàng)目名稱點(diǎn)擊OK進(jìn)入到任務(wù)詳細(xì)配置頁
在這里官方文檔上寫著如果安裝了GitHub plugin的話,可以在GitHub Project欄目里面隨便填上你的項(xiàng)目在Gitlab里面的URL,不過我沒裝這個(gè)插件,所以跳過。
找到源碼管理欄目并選擇Git,從這里開始比較重點(diǎn)
- 按照常規(guī)填寫了
Repository URL和Credentials之后,點(diǎn)擊高級(jí)...按鈕,在Name中填寫origin
- 為了支持從其他
forked分支提交的merge requests需要再額外增加一個(gè)源。點(diǎn)擊Add Repository,然后將新增加的源的Repository URL內(nèi)容設(shè)置為${gitlabSourceRepository},Credentials和主源一樣,高級(jí)...中的Name設(shè)置為${gitlabSourceName}
- 找到
Branch Specifier,將里面的內(nèi)容改為${gitlabSourceName}/${gitlabSourceBranch}
- 找到
Additional Behaviours點(diǎn)擊寫著Add字樣的下拉列表,選擇Merge before build
- 在新彈出的
Merge before build區(qū)塊中,設(shè)置 Name of repository 的值為 origin,設(shè)置 Branch to merge to 的值為 ${gitlabTargetBranch}
- 官方文檔在這里有一個(gè)提示,說要保證
Prune stale remote-tracking branches 沒有被添加
找到 構(gòu)建觸發(fā)器 欄目
- 把
Gitlab Merge Requests Builder 打上勾
- 在
Gitlab Project Path 里面填寫項(xiàng)目的路徑,格式類似于 your_group/your_project ,不知道怎么填可以打開你的項(xiàng)目在git的主頁,然后參考看看URL,就是類似 http://d/your_group/your_project,注意不要把整個(gè)URL都填進(jìn)去,只需要填 your_group/your_project 這部分。
- 官方文檔中還提到了
Target Branch Regex ,貌似是個(gè)能起到分支白名單作用的選項(xiàng),如果不填則所有的正常的merge request都能觸發(fā)這個(gè)任務(wù)。不過不知道為什么我這里沒有找到這個(gè)選項(xiàng),所以就跳過了。
到這里跟merge request相關(guān)的配置基本就完成了,然后就是配置一下項(xiàng)目其他的一些編譯選項(xiàng),比如我在maven編譯的Goals and options中填寫了clean test -U,這樣構(gòu)建就只執(zhí)行到完成測試,這樣就達(dá)到了在合并代碼前先檢查其質(zhì)量的目的。
一切配置完成后不要忘了點(diǎn)擊保存按鈕。
|