我希望 Jenkins 在 Gerrit 中上传或更改补丁集时触发构建。我该如何配置?

Ry *_*nes 6 git jenkins gerrit

我正在使用 Jenkins 1.557 来观察 Gerrit 2.8 实例的变化。我正在使用以下插件:

  • Git 插件 2.1.0
  • Git 客户端插件 1.7.0
  • Gerrit 触发器 2.11.1

当我在 Gerrit 触发器上使用“测试连接”时,它返回成功,所以我知道凭据正在工作。我在“高级”按钮下使用默认值。

对于我的测试构建类型,我使用了 Jenkins 检查的 git repo(我添加了“ls -l”的构建后步骤,它正确显示了 repo 内容)。我将构建触发器设置为“gerrit event”,对于“gerrit trigger”,我选择了“Check non-reviewed patchsets”,并启用了“patchset created”的触发器。gerrit 项目设置似乎正确。

我无法通过上传新更改或更改的新补丁集来启动构建。当我使用“查询并触发 Gerrit 补丁”按钮手动触发构建时,构建会发生,但不会记录任何投票。我显然错过了部分难题 - 如果我 ssh 进入 gerrit 并执行“流事件”,我会看到我期望看到的事件。

Jenkins - 权威指南 - 来自 O'Reilly 并没有真正涵盖 Gerrit。我试图避免轮询,因为此 Jenkins 实例将管理数十个 git 存储库。

调试的下一步是什么?

Ste*_*ing 4

过去发生了一些变化,破坏了插件:

  • Gerrit 2.8 删除了已弃用的approve命令,据我所知,该命令破坏了插件,请参阅讨论发行说明。这个问题已在 2.11.0-beta1 中修复,所以我想您的情况并非如此。

  • Gerrit 2.7 引入了流事件权限,默认情况下不允许用户接收流事件,请参阅发行说明。您的 Jenkins 用户很可能没有此访问权限,因此在推送更改后不会触发任何构建。