我们正在完成新 CI 系统的设置,包括用于自动化测试和代码审查的 git、gerrit 和 jenkins,我们发现了一个奇怪的情况:
我们有三个不同的 gerrit 项目,每个项目都有自己的 Jenkins 工作。我们使用本指南作为设置参考,一切都已安装并且工作正常。
我们的第一个项目已经设置好,并使用示例更改补丁进行了测试。Jenkins 被正确触发,通过了测试并按预期对构建进行了“验证”投票。到目前为止,一切都很好!
但是:当我们尝试设置第二个项目时,我们发现其中一个项目中的更改补丁会触发每个 jenkins 作业中的更改。例如:
假设我们有 GerritProjectA 和 GerritProjectB,每个都有 JenkinsProjectA 和 JenkinsProjectB。当向 GerritProjectA 提交更改时,JenkinsProjectA 和 JenkinsProjectB 都会被触发。此外,在构建之后的 gerrit 投票中有些东西混淆了:这是 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
如您所见,gerrit 批准命令与两个不同 jenkins 作业的信息混合在一起......
任何詹金斯工作的示例设置:
Repository URL: ssh://jenkins@gerrit-server: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
有任何想法吗?提前致谢!
多明戈