[OpenAFS-devel] Do we have a buildbot?

Simon Wilkinson sxw@inf.ed.ac.uk
Sun, 11 Jul 2010 10:12:14 +0100


> since there isn't a build master, I suppose I would need both a build =
master and a build slave.
> I would like to integrate with gerrit, but I might just do git at =
first because it's probably simpler.

It should be possible to do a buildbot that integrates with git using =
the off-the-shelf buildbot code.

I've never got around to doing this because, for me, it's a much less =
interesting problem. In theory all of the code which gets committed to =
our git master has been verified for correctness before it hits the tree =
- both by the committer, and by one or more reviewers. So, the set of =
failures which a buildbot building from=20
git master will catch is much smaller than for projects which don't do =
review, or which do post commit review. The big advantage of a buildbot =
in this situation is that it should be able to build for systems which =
reviewers don't have on their desktops, and so catch breakage on =
non-standard systems much much quicker. However, as we continually =
demonstrate, reality is less rosy, and changes which are just plain =
broken slip through from time to time - so a post-commit buildbot would =
definitely be useful.

My eventual plan is, as Jeffrey notes, to integrate a continuous build =
system with Gerrit. This would take each incoming patch and check if it =
has a new 'Safe to build' flag set on it. For all patches which are =
'Safe to build' it would perform the build and mark the verified state =
of the patch accordingly. This would save a large amount of review time =
- as the "grab the commit, clean the tree, build the commit, mark the =
commit as verified" process is both time consuming and tedious. =
Developers who are 'trusted' would have the safe to build flag set on =
all of their changes, and trusted developers can set 'safe to build' on =
any change that they have reviewed. We need this system because we =
accept patches from anyone - we don't want all of our build systems =
compromised by someone who submits a simple Makefile change to gerrit.=20=


Last year, I was convinced that the way to build this system was with =
buildbot, and I spent a while writing a load of python code to hook =
buildbot up to gerrit's RPC interface. This may still be the way to go, =
but it will always be a homegrown system. There's been a lot of recent =
interest on the gerrit list in hooking up Hudson to monitor gerrit =
changes - and there's now a fledgling gerrit plugin for Hudson. This has =
the big advantage that someone else is doing all of the work!

Cheers,

Simon.=