我正在使用 Jenkins 1.557 来观察 Gerrit 2.8 实例的变化。我正在使用以下插件:
- Git 插件 2.1.0
- Git 客户端插件 1.7.0
- 格里特触发器 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 repos。
调试的下一步是什么?
过去发生了一些变化,破坏了插件:
Gerrit 2.8 删除了已弃用的
approve
命令,该命令 AFAIK 破坏了插件,请参阅讨论和发行说明。这已在 2.11.0-beta1 中修复,所以我想这对你来说不是这样。Gerrit 2.7 引入了流事件权限,默认情况下不允许用户接收流事件,请参阅发行说明。很可能,您的 Jenkins 用户没有此访问权限,因此在推送更改后不会触发任何构建。