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

Timo Stollenwerk <[email protected]> Mon, 06 Feb 2012 09:21:48 +0100
Newsgroups gmane.comp.web.zope.plone.website,gmane.comp.web.zope.plone.devel
Message-ID <[email protected]>
Am 03.02.2012 23:07, schrieb William Deegan:
> All,
> On Nov 20, 2011, at 7:59 AM, Patrick Gerken wrote:
> 
>> On Sun, Nov 20, 2011 at 15:51, Timo Stollenwerk <[email protected]> wrote:
>>> 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).
>>
>> Yes, it's really slow, right now it takes 20 minutes. We are polling
>> github and svn right now, and the git plugin is too stupid to work
>> with multiple checkouts reliably, and believes every time something
>> has changed.
>>
>> My idea would be a small improvement of the current situation, while
>> yours below certainly is better, but it needs to be done.
>> I'd love to join the efforts, but right now I can't even keep up with
>> mail traffic :-(
> 
> Was wondering what's the current status on this.
> Apparently github has a API which would allow us to walk all the plone repos and set the hook programmatically
> http://developer.github.com/v3/repos/hooks/

I added a github user to jenkins.plone.org so we can trigger builds on
github commits. I tested it for several core projects and it works
pretty well (for single packages).

As David already pointed out, we are also able to set github post-commit
hooks programmatically.

The question is still, how do we decide when to trigger a coredev build
and how do we set up the Jenkins jobs. After discussing this issue with
Eric I wrote a proposal for a Jenkins job architecture:

https://github.com/plone/jenkins.plone.org/blob/master/architecture.rst

This is still work in progress, so I'm open for discussion. Feel free to
add your ideas and thoughts to that document.

I think the only way we can figure out a good way to set up the coredev
jobs is to try out different approaches. Therefore I started to play
around a bit the Jenkins API to set up jobs automatically (because we
don't want to set up jobs for all core packages manually):

https://github.com/plone/jenkins.plone.org/blob/master/fabfile.py

Michael Mulich also worked on setting up Jenkins jobs automatically.

@Michael: Could you give us a quick update on what you did so far?

I'm constantly working on the Jenkins setup, but right now I can only
spare a couple of hours every week. I hope to get some work done at the
Plone Konferenz sprint in Munich later this month.

FYI: I also worked on buildout.jenkins this weekend and it is now
possible to run code coverage and code analysis on multiple packages:

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

Cheers,
timo




------------------------------------------------------------------------------
Try before you buy = See our experts in action!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-dev2
_______________________________________________
Plone-website mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/plone-website
The Wiki: http://plone.org/development/current/projects/WebsiteTeam