多詹金斯/格里特项目
问题描述:
我们正在整理我们的新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
有什么建议吗?提前致谢!
多明戈
答
发现了问题:
其中詹金斯作业(姑且称之为JenkinsJobB),在配置的“格里特触发”部分没有Git仓库的名称该模式。
如果您有格里特项目中的多个詹金斯的工作,你需要设置格里特触发这样的(至少在我的情况):
Type: Plain
Pattern: (repository name)
Branches
Type: Path
Pattern: ** (or the branch name if you just want to watch one).