2016-07-12 57 views
3

我为Gerrit安装了Rabbit MQ插件,并配置了Gerrit将流事件发送到Queue。我在我的Jenkins中安装了Gerrit Trigger插件和Rabbit MQ消费者插件,并创建了一个基于Gerrit事件触发构建的测试工作。使用rabbitmq消费者插件配置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触发插件配置

//不完整的配置

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

兔MQ消费插件配置詹

<?xml version='1.0' encoding='UTF-8'?> 
<org.jenkinsci.plugins.rabbitmqconsumer.GlobalRabbitmqConfiguration plugin="[email protected]"> 
    <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

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

+0

我不明白这一点。请告诉我在哪里可以检查gerrit钩子配置以及如何禁用它。任何关于此的链接都会有帮助。 – sai

+0

完整的gerrit钩子信息在这里https://git.eclipse.org/r/Documentation/config-hooks.html –