Gitlab Merge Request Builder Plugin 配置小記

之前在給一些開源項目貢獻代碼的時候,在github上一提交pull request或者提交的分支代碼更新了的時候,jenkins就會自動把代碼進行merge而且運行單元測試,當時看了內心就2個字: NB!git

那個時候內心就想,啥時候我也得弄這麼一個高大上的玩意兒。隨着 gitlab 在工做中的逐漸使用,這個想法愈來愈強烈。上週末搜來搜去,發現jenkins還真有一款針對gitlab的merge request的插件:Gitlab Merge Request Builder Plugingithub

當時就心癢難耐,開始看着說明一步步的配置。配置分紅2大部分:併發

第一部分: 安裝插件&基礎設置


  • 首先安裝插件,要求jenkins版本大於1.563 ,好在jenkins升級比較方便,在系統管理界面就有個大大的升級按鈕,果斷升級到1.570maven

  • 系統管理->插件管理->可選插件 裏面搜出來 Gitlab Merge Request Builder 安裝並重啓 jenkins,官方文檔在這裏強調了須要重啓jenkinsgitlab

  • 重啓以後,進入系統管理->系統設置 裏面,能發現裏裏面多了Gitlab Merge Request Builder的配置項單元測試

    1. Gitlab Host URL 裏填gitlab的服務地址,好比 http://192.168.0.1測試

    2. Jenkins Username 裏面填寫jenkins的用戶名,在這裏須要在gitlab裏面給jenkins建立一個跟你其餘小組成員同樣的帳戶,以便jenkins能在項目中發言ui

    3. Jenkins API Token 是jenkins在getlab中帳戶的一個權限校驗碼,這個碼能夠在使用jenkins帳戶登陸gitlab後進入帳戶編輯界面的Account標籤頁中查到,在那裏面叫Private token插件

    4. Crontab line 主要是配置jenkins多久去檢查一次merge request的變動, 默認是 */5 * * * * 即 5分鐘一次, 不過jenkins建議改爲 H/5 * * * * 貌似能夠改善併發。聽人勸吃飽飯,我把*/5換成了H/5至今爲止貌似還沒發現問題。調試

    5. Enable build triggered message 是指在插件激活的時候在merge request界面發送一條jenkins已經開始工做的消息,不過我感受,調試的時候還有點用,正常使用就有點囉嗦了。

    6. Default success messageDefault unstable message以及Default failure message三個配置分別是一個成功和兩個失敗的提示消息模板,乾巴巴的字感受不是很明晰,因此能夠在裏面增長emoji表情,好比 :smiley: 或者 :broken_heart:

    7. Ignore SSL Certificate Errors 顧名思義是忽略https的證書錯誤,這個選項對假設在局域網內的gitlab私服頗有用,果斷勾上!

  • 都配置好了以後不要忘記點擊 保存 按鈕

第二部分: 建立任務


  • 建立任務一開始和普通流程沒啥兩樣,點擊新建建立一個新任務,而後選擇你須要的任務類型,由於我是maven項目因此我選了構建一個maven2/3項目,填好項目名稱點擊OK進入到任務詳細配置頁

  • 在這裏官方文檔上寫着若是安裝了GitHub plugin的話,能夠在GitHub Project欄目裏面隨便填上你的項目在Gitlab裏面的URL,不過我沒裝這個插件,因此跳過。

  • 找到源碼管理欄目並選擇Git,從這裏開始比較重點

    • 按照常規填寫了Repository URLCredentials以後,點擊高級...按鈕,在Name中填寫origin
    • 爲了支持從其餘forked分支提交的merge requests須要再額外增長一個源。點擊Add Repository,而後將新增長的源的Repository URL內容設置爲${gitlabSourceRepository}Credentials和主源同樣,高級...中的Name設置爲${gitlabSourceName}
    • 找到Branch Specifier,將裏面的內容改成${gitlabSourceName}/${gitlabSourceBranch}
    • 找到Additional Behaviours點擊寫着Add字樣的下拉列表,選擇Merge before build
    • 在新彈出的Merge before build區塊中,設置 Name of repository 的值爲 origin,設置 Branch to merge to 的值爲 ${gitlabTargetBranch}
    • 官方文檔在這裏有一個提示,說要保證 Prune stale remote-tracking branches 沒有被添加
  • 找到 構建觸發器 欄目

    • Gitlab Merge Requests Builder 打上勾
    • Gitlab Project Path 裏面填寫項目的路徑,格式相似於 your_group/your_project ,不知道怎麼填能夠打開你的項目在git的主頁,而後參考看看URL,就是相似 http://git.tld/your_group/your_project,注意不要把整個URL都填進去,只須要填 your_group/your_project 這部分。
    • 官方文檔中還提到了 Target Branch Regex ,貌似是個能起到分支白名單做用的選項,若是不填則全部的正常的merge request都能觸發這個任務。不過不知道爲何我這裏沒有找到這個選項,因此就跳過了。
  • 到這裏跟merge request相關的配置基本就完成了,而後就是配置一下項目其餘的一些編譯選項,好比我在maven編譯的Goals and options中填寫了clean test -U,這樣構建就只執行到完成測試,這樣就達到了在合併代碼前先檢查其質量的目的。

  • 一切配置完成後不要忘了點擊保存按鈕。


至此,配置所有完成。接下來就能夠嘗試建立一個merge request來看看是否是好使。

相關文章
相關標籤/搜索