[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