我为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>
对此有任何帮助表示赞赏。提前谢谢。
答案 0 :(得分:0)
可能是因为Gerrit Hook可能会远程触发你的Jenkins工作。(如果你有gerrit钩子的配置)