使用rabbitmq使用者插件配置gerrit触发器

时间:2016-07-12 07:26:06

标签: jenkins rabbitmq gerrit-trigger

我为Gerrit安装了Rabbit MQ插件,并配置了Gerrit将流事件发送到Queue。我在Jenkins中安装了Gerrit Trigger插件和Rabbit MQ使用者插件,并创建了一个测试作业来触发基于Gerrit事件的构建。

Gerrit将事件推送到Rabbit MQ队列。 Jenkin的工作应该从Rabbit MQ队列接收gerrit事件,并为每个事件做一个构建。

问题是Jenkin作业(test-job)被触发两次而不是每次gerrit事件一次,并且一次事件发生两次构建。

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

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

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

Gerrit触发Jekin中的插件配置

//未完成配置

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

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

1 个答案:

答案 0 :(得分:0)

可能是因为Gerrit Hook可能会远程触发你的Jenkins工作。(如果你有gerrit钩子的配置)