1. 程式人生 > >Jenkins獲取igerrit當前提交程式碼

Jenkins獲取igerrit當前提交程式碼

Jenkins獲取igerrit當前提交程式碼

利用Jenkins+ Git + igerrit搭建持續化構建平臺。大體過程為:code提交到igerrit伺服器,觸發編譯、程式碼審查後,Merger到Git倉庫中。

問題:通過Repo通過repo獲取專案(假設專案包含100個倉庫)程式碼後,程式碼為Git倉庫的程式碼。並不包含igerrit當前的提交(因為沒有Merge)。那麼如何獲取igerrit當前提交,並且獲取當前提交最新的版本?

解決:配置Gerrit Event觸發的Job,再Build History對應的執行記錄中,有引數這一選項。裡面定義了許多環境變數。如:

GERRIT_EVENT_TYPE=patchset-created
GERRIT_REFSPEC=refs/changes/xxx/xxx/x
GERRIT_PROJECT=project路徑
  • 在Jenkins構建(執行shell)中,使用GERRIT_REFSPEC,即可。
# 省略
..... 
# 取得專案程式碼後
repo sync
# 進入到對應倉庫
cd xxx
# 將igerrit上的提交(refs/changes/xxx/xx/x)取下來
git pull origin $GERRIT_REFSPEC
# 開始編譯即可