Re: [Plone-developers] jenkins and git repository monitoring

Timo Stollenwerk <[email protected]> Sun, 20 Nov 2011 15:51:28 +0100
Newsgroups gmane.comp.web.zope.plone.website,gmane.comp.web.zope.plone.devel
Message-ID <[email protected]>
Hi Patrick,

I'm not sure if polling github is really what we want for CI (the
ScriptTrigger plugin does poll after all if I understand it correctly).
Polling works fine for smaller projects, but I don't think it does
really scale for a project like Plone. With a large number of jobs
polling this is a waste of network resources and we don't really get
atomic commits (which is not really CI then).

I gave this some thought and maybe we can set up some kind of
"dispatcher"-Job in Jenkins that is triggered for each commit on a
coredev package (it seems like there is no way to trigger a remote URL
for the entire Plone project on github, so we have to set up a trigger
for each coredev package).

The "dispatcher" could be a regular Jenkins job that we set up for each
coredev branch (4.0, 4.1, 4.2), that only succeeds if the commit is
relevant for that particular coredev branch (the Jenkins job could
include a bash script or buildout recipe that reads the eggs under
development to make this decision). If a "dispatcher"-job is successful,
it triggers the real build, tests, coverage, etc..

I think a proof-of-concept would be easy to setup. Another option would
be to implement the dispatcher as a small app, maybe with Pyramid on GAE
(but this app would have to read the coredev buildouts to decide which
package is relevant for a particular buildout).

We set up a github project at the Plone conference to work on the
Jenkins setup and this particular problem:

https://github.com/plone/jenkins.plone.org

Feel free to join our efforts. :)

Cheers,
timo

Am 20.11.2011 02:25, schrieb Patrick Gerken:
> Hi,
> 
> Jenkins was stuck for a week and by cancelling some job I got it
> running again. But now it runs new tests for Plone 4.1 and 4.2 every
> 20 minutes.
> That's because the git plugin for jenkins really can't handle polling
> for changes for multiple repositories for a single project.
> An alternative seems to be to use this plugin:
> 
> https://wiki.jenkins-ci.org/display/JENKINS/ScriptTrigger+Plugin
> 
> and set
> 
> ./bin/develop up -v |  grep -e '^Updat\(ing\|ed\)'
> 
> as the script
> 
> The plugin is currently missing and I can't add it, but I'd be glad to help
> 
> Best regards,
> 
>    Patrick
> 
> ------------------------------------------------------------------------------
> All the data continuously generated in your IT infrastructure 
> contains a definitive record of customers, application performance, 
> security threats, fraudulent activity, and more. Splunk takes this 
> data and makes sense of it. IT sense. And common sense.
> http://p.sf.net/sfu/splunk-novd2d
> _______________________________________________
> Plone-developers mailing list
> Plone-developers-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> https://lists.sourceforge.net/lists/listinfo/plone-developers


------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure 
contains a definitive record of customers, application performance, 
security threats, fraudulent activity, and more. Splunk takes this 
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d
_______________________________________________
Plone-website mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/plone-website
The Wiki: http://plone.org/development/current/projects/WebsiteTeam