2012-04-08 83 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).