jenkins - 使用rabbitmq消费者插件配置gerrit触发器

标签 jenkins rabbitmq gerrit-trigger

我为 Gerrit 安装了 Rabbit MQ 插件,并将 Gerrit 配置为将流事件发送到队列。我在 Jenkins 中安装了 Gerrit 触发器插件和 Rabbit MQ 消费者插件,并创建了一个测试作业来根据 Gerrit 事件触发构建。

Gerrit 将事件推送到 Rabbit MQ 队列。 Jenkin 作业应该从 Rabbit MQ 队列接收 gerrit 事件,并为每个事件进行构建。

问题在于,对于每个 gerrit 事件,Jenkin 作业(测试作业)都会触发两次,而不是一次,并且一个事件会发生两次构建。

似乎一个构建是由于 Rabbit MQ 队列中的 gerrit 事件而触发的,而同一作业的另一个构建是由于来自配置的 gerrit 服务器的 gerrit 事件而触发的。

我尝试在互联网上搜索,但没有找到解决方案。

我遵循了这个教程.. https://docs.google.com/presentation/d/10n0A6BoyEVBsU4t-edW58Nq5kuefmcIZFBAssxxQoMU/htmlpresent

Jekin 中的 Gerrit 触发器插件配置

//不完整的配置

 <name>local-gerrit</name>
<gerritHostName>10.xxx.yy.zz</gerritHostName>
<gerritSshPort>29418</gerritSshPort>
<gerritFrontEndUrl>http://10.xxx.yy.zz:8010/</gerritFrontEndUrl>

Rabbit MQ消费者插件配置Jenkin

<?xml version='1.0' encoding='UTF-8'?>
<org.jenkinsci.plugins.rabbitmqconsumer.GlobalRabbitmqConfiguration plugin="rabbitmq-consumer@2.7">
  <urlValidator>
    <options>8</options>
    <allowedSchemes>
      <string>amqp</string>
      <string>amqps</string>
    </allowedSchemes>
  </urlValidator>
  <enableConsumer>true</enableConsumer>
  <serviceUri>amqp://10.xxx.yy.zz</serviceUri>
  <userName>guest</userName>
  <userPassword></userPassword>
  <watchdogPeriod>60000</watchdogPeriod>
  <consumeItems>
    <org.jenkinsci.plugins.rabbitmqconsumer.RabbitmqConsumeItem>
      <appId>gerrit</appId>
      <queueName>jenkin-queue</queueName>
    </org.jenkinsci.plugins.rabbitmqconsumer.RabbitmqConsumeItem>
  </consumeItems>
  <enableDebug>false</enableDebug>
</org.jenkinsci.plugins.rabbitmqconsumer.GlobalRabbitmqConfiguration>

对此的任何帮助表示赞赏。提前致谢。

最佳答案

可能是因为 Gerrit Hook 可能会远程触发您的 Jenkins 作业。(如果您在 gerrit hook 中有配置)

关于jenkins - 使用rabbitmq消费者插件配置gerrit触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38322483/

相关文章:

java - 如何从队列中获取所有现有消息并停止消费者

vb.net - 重启后rabbitmq队列清空

git - Jenkins 无法获取changeId 和revisionId

jenkins - Repo、gerrit 和 Jenkins 合作

git - Jenkins 无法连接到 gerrit 存储库(Windows 安装)

jenkins - 在成功的 Jenkins 构建上自动部署上限

linux - 我无法使用公钥和私钥从Jenkins节点SSH到远程服务器

docker - RabbitMQ 无法加入集群

更新子模块时 Hudson 上的 Git 致命异常

jenkins - Jenkinsfile 中的构建失败