多个jenkins / gerrit项目

时间:2012-04-08 17:23:27

标签: git jenkins gerrit

我们正在完成新CI系统的设置,包括用于自动化测试和代码审查的git,gerrit和jenkins,我们发现了一个奇怪的情况:

我们有三个不同的gerrit项目,每个项目都有自己的Jenkins工作。我们使用this指南作为设置参考,一切都已安装并且显然正常工作。

我们的第一个项目已经完成,并使用样本更改补丁进行了测试。 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 approve命令与两个不同jenkins工作的信息混在一起......

任何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

有什么想法吗?提前谢谢!

多明戈

1 个答案:

答案 0 :(得分:1)

发现问题:

其中一个Jenkins作业(我们称之为JenkinsJobB),在配置的“Gerrit Trigger”部分中没有模式中git存储库的名称。

如果你有gerrit项目的多个jenkins工作,你需要像这样设置gerrit触发器(至少在我的情况下):

Type: Plain
Pattern: (repository name)

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