<div dir="ltr">Hi Jay,<div><br></div><div>it's really very easy to setup Zuul for it (we're using one for Savanna CI).</div><div><br></div><div>There are some useful links:</div><div><br></div><div>* check pipeline as an example of zuul layout configuration - <a href="https://github.com/openstack-infra/config/blob/master/modules/openstack_project/files/zuul/layout.yaml#L5">https://github.com/openstack-infra/config/blob/master/modules/openstack_project/files/zuul/layout.yaml#L5</a></div>
<div>* zuul docs - <a href="http://ci.openstack.org/zuul/">http://ci.openstack.org/zuul/</a></div><div>* zuul config sample - <a href="https://github.com/openstack-infra/zuul/blob/master/etc/zuul.conf-sample">https://github.com/openstack-infra/zuul/blob/master/etc/zuul.conf-sample</a></div>
<div><br></div><div>So, I think that it could be easy enough to setup Zuul for 3rd party testing, but it'll be better to have some doc about it.</div><div><br></div><div>Thanks.</div></div><div class="gmail_extra"><br>
<br><div class="gmail_quote">On Wed, Feb 5, 2014 at 3:55 AM, Jay Pipes <span dir="ltr"><<a href="mailto:jaypipes@gmail.com" target="_blank">jaypipes@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Sorry for cross-posting to both mailing lists, but there's lots of folks<br>
working on setting up third-party testing platforms that are not members<br>
of the openstack-infra ML...<br>
<br>
tl;dr<br>
-----<br>
<br>
The third party testing documentation [1] has requirements [2] that<br>
include the ability to trigger a recheck based on a gerrit comment.<br>
<br>
Unfortunately, the Gerrit Jenkins Trigger plugin [3] does not have the<br>
ability to trigger job runs based on a regex-filtered comment (only on<br>
the existence of any new comment to the code review).<br>
<br>
Therefore, we either should:<br>
<br>
a) Relax the requirement that the third party system trigger test<br>
re-runs when a comment including the word "recheck" appears in the<br>
Gerrit event stream<br>
<br>
b) Modify the Jenkins Gerrit plugin to support regex filtering on the<br>
comment text (in the same way that it currently supports regex filtering<br>
on the project name)<br>
<br>
or<br>
<br>
c) Add documentation to the third party testing pages that explains how<br>
to use Zuul as a replacement for the Jenkins Gerrit plugin.<br>
<br>
I propose we do a) for the short term, and I'll work on c) long term.<br>
However, I'm throwing this out there just in case there are some Java<br>
and Jenkins whizzes out there that could get b) done in a jiffy.<br>
<br>
details<br>
-------<br>
<br>
OK, so I've been putting together documentation on how to set up an<br>
external Jenkins platform that is "linked" [4] with the upstream<br>
OpenStack CI system.<br>
<br>
Recently, I wrote an article detailing how the upstream CI system<br>
worked, including a lot of the gory details from the<br>
openstack-infra/config project's files. [5]<br>
<br>
I've been working on a follow-up article that goes through how to set up<br>
a Jenkins system, and in writing that article, I created a source<br>
repository [6] that contains scripts, instructions and Puppet modules<br>
that set up a Jenkins system, the Jenkins Job Builder tool, and<br>
installs/configures the Jenkins Gerrit plugin [7].<br>
<br>
I planned to use the Jenkins Gerrit plugin as the mechanism that<br>
triggers Jenkins jobs on the external system based on gerrit events<br>
published by the OpenStack <a href="http://review.openstack.org" target="_blank">review.openstack.org</a> Gerrit service. In<br>
addition to being mentioned in the third party documentation, Jenkins<br>
Job Builder has the ability to construct Jenkins jobs that are triggered<br>
by the Jenkins Gerrit plugin [8].<br>
<br>
Unforunately, I've run into a bit of a snag.<br>
<br>
The third party testing documentation has requirements that include the<br>
ability to trigger a recheck based on a gerrit comment:<br>
<br>
<quote><br>
Support recheck to request re-running a test.<br>
* Support the following syntaxes recheck no bug and recheck bug ###.<br>
* Recheck means recheck everything. A single recheck comment should<br>
re-trigger all testing systems.<br>
</quote><br>
<br>
The documentation has a section on using the Gerrit Jenkins Trigger<br>
plugin [3] to accept notifications from the upstream OpenStack Gerrit<br>
instance.<br>
<br>
But unfortunately, the Jenkins Gerrit plugin does not support the<br>
ability to trigger a re-run of a job given a regex match of the word<br>
"recheck". :(<br>
<br>
So, we either need to a) change the requirements of third party testers,<br>
b) enhance the Jenkins Gerrit plugin with the missing functionality, or<br>
c) add documentation on how to set up Zuul as the triggering system<br>
instead of the Jenkins Gerrit plugin.<br>
<br>
I'm happy to work on c), but I think relaxing the restriction (a) is<br>
probably needed short-term.<br>
<br>
Best,<br>
-jay<br>
<br>
[1] <a href="http://ci.openstack.org/third_party.html" target="_blank">http://ci.openstack.org/third_party.html</a><br>
[2] <a href="http://ci.openstack.org/third_party.html#requirements" target="_blank">http://ci.openstack.org/third_party.html#requirements</a><br>
[3]<br>
<a href="http://ci.openstack.org/third_party.html#the-jenkins-gerrit-trigger-plugin-way" target="_blank">http://ci.openstack.org/third_party.html#the-jenkins-gerrit-trigger-plugin-way</a><br>
[4] By "linked" I mean it both reads from the OpenStack Gerrit system<br>
and writes (adds comments) to it<br>
[5] <a href="http://www.joinfu.com/2014/01/understanding-the-openstack-ci-system/" target="_blank">http://www.joinfu.com/2014/01/understanding-the-openstack-ci-system/</a><br>
[6] <a href="http://github.com/jaypipes/os-ext-testing" target="_blank">http://github.com/jaypipes/os-ext-testing</a><br>
[7] <a href="https://wiki.jenkins-ci.org/display/JENKINS/Gerrit+Trigger" target="_blank">https://wiki.jenkins-ci.org/display/JENKINS/Gerrit+Trigger</a><br>
[8]<br>
<a href="https://github.com/openstack-infra/jenkins-job-builder/blob/master/jenkins_jobs/modules/triggers.py#L121" target="_blank">https://github.com/openstack-infra/jenkins-job-builder/blob/master/jenkins_jobs/modules/triggers.py#L121</a><br>
<br>
<br>
<br>
_______________________________________________<br>
OpenStack-Infra mailing list<br>
<a href="mailto:OpenStack-Infra@lists.openstack.org">OpenStack-Infra@lists.openstack.org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-infra" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-infra</a><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr"><div>Sincerely yours,</div><div>Sergey Lukjanov</div><div>Savanna Technical Lead</div><div>Mirantis Inc.</div></div>
</div>