[OpenAFS-devel] Buildbot for gerrit

Jason Edgecombe jason@rampaginggeek.com
Tue, 13 Oct 2009 18:50:18 -0400


Simon Wilkinson wrote:
> I've been thinking over the last few months about how we might 
> simplify the verification task in gerrit, by using something like 
> buildbot to automate the verification process. This is complicated a 
> little by the fact that we're not wanting to build a linearly 
> progressing branch (such as master), but instead a branching tree, 
> where each change exists on its own branch. It's also complicated by 
> the fact that we don't place any limits on which code may be submitted 
> to gerrit, but we don't want our build machines test building code 
> from unknown contributors.
>
> So, here's the plan. We'll have a bot which uses gerrit's JSON 
> interface to interrogate it for details about recent changes. When a 
> change is updated, the bot will check to see if the most recent 
> patchset is already queued for building. If it is not, then it will 
> use a RPC to ask gerrit for details about that patchset. If the author 
> is on a 'trusted' list, then the patchset will be added to the build 
> queue. If not, then the list of reviewers is checked. If someone on 
> the trusted list has supplied at least a '+1' for verification or code 
> review, then the patchset will be added to the build queue. The git 
> SHA1 will be obtained from gerrit via RPC, and the buildbot Change 
> record generated by consulting a local git repository.
>
> buildBot itself will be configured to treat each entry in the build 
> queue as an independent change. Merging will be disabled, so every 
> change will be built. This does mean that for changes in gerrit that 
> really are dependent, we may do unnecessary work, but that's not 
> necessarily a bad thing, as it means we will catch change series that 
> break, then fix, a problem in consecutive patch sets.
>
> When the build is complete, buildbot will report success or failure 
> back into gerrit using the ssh interface. A single message will be 
> generated, with more details of which builders succeeded or failed 
> available from a link contained in that message.
>
> At the moment, I have a Linux builder available. Contributions of 
> hosts for other systems will be gratefully appreciated once I've got 
> it up and running.
>
> Thoughts?
I like it.

Will any non-compilation tests be run as well?

Jason