2012-04-08 84 views
2

我們正在整理我們的新CI系統的設置,包括混帳,格里特和自動化測試和代碼審查詹金斯,並且我們發現一個奇怪的現象:多詹金斯/格里特項目

我們有三個不同gerrit項目,每個人都有自己的Jenkins工作。我們使用this指南作爲安裝參考,並且安裝了所有東西,顯然工作正常。

我們的第一個項目已經安裝完畢,並且通過一個樣本更換補丁進行了測試。詹金斯被正確觸發,通過了測試,並按預期投票「已驗證」。到現在爲止還挺好!

但是:當我們嘗試設置第二個項目時,我們發現其中一個項目中的更改補丁觸發器在每個jenkins作業中都發生了變化。例如:

比方說,我們有GerritProjectA和GerritProjectB,每一個都帶有一個JenkinsProjectA和JenkinsProjectB。當更改提交給GerritProjectA時,JenkinsProjectA和JenkinsProjectB都會被觸發。此外,某樣東西在構建後格里特投票混合起來:這是sshd_log的信息的一個後構建(之一JenkinsProjectB):

gerrit approve 10,3 --message '\''Build Failed 
    http://jenkins-server:8080/job/projectA/6/ : FAILURE 

    http://jenkins-server:8080/job/projectB/59/ : Correcto'\!''\'' -- 
     verified -2 --code-review 0' 14ms 6ms 1 

正如你所看到的,格里特批准命令混合起來有兩個不同的詹金斯作業的信息...

樣品設置任何詹金斯工作:

Repository URL: ssh://[email protected]:29418/projectA.git 
Banches to build: $GERRIT_PATCHSET_REVISION 
Build triggered by Gerrit event: 
Project Type: Plain 
Branches: Path ** 

軟件版本:

Jenkins: 1.458 
Gerrit plugin: 2.5.1 
Gerrit: 2-3 rc0 

有什麼建議嗎?提前致謝!

多明戈

回答

1

發現了問題:

其中詹金斯作業(姑且稱之爲JenkinsJobB),在配置的「格里特觸發」部分沒​​有Git倉庫的名稱該模式。

如果您有格里特項目中的多個詹金斯的工作,你需要設置格里特觸發這樣的(至少在我的情況):

Type: Plain 
Pattern: (repository name) 

Branches 
Type: Path 
Pattern: ** (or the branch name if you just want to watch one).