Alex headshot

AlBlue’s Blog

Macs, Modularity and More

Gerrit Git Review with Jenkins CI Server

2011 Jenkins Git Eclipse Gerrit

Last week, I published a piece on Gerrit and Jenkins about how I saw the future of distributed development teams. It got a fair number of views and positive comments (both off- and on-line) so I followed through with my promise to record a demo of using all the systems together.

This uses Gerrit, combined with Jenkins CI and the Gerrit Trigger Plugin. I skipped on explaining how to set this up in the video, preferring to show how it's used so to get a feel of how it all fits together. If there's interest, I might do a subsequent demo on getting started with Gerrit and Jenkins, taking about the installation steps needed. But without further ado, here's the video:

Gerrit Git Review with Jenkins CI Server from Alex Blewitt on Vimeo.

Instead of the turn-of-the-century approach to attaching Git patches to Bugzilla, Eclipse needs to get off the wait-and-see bandwaggon and jump onto Gerrit. Gerrit can collect contributor agreements before accepting any pushes, and will also have full traceability for where the changes came from by virtue of 'Signed-off-by' tags that can be added by committers. All you need to do is have a commit hook which verifies that either the author or the signed-off-by signatory is a valid Eclipse committer (Gerrit will ensure that in order to push, the contributor agreement has been filled out) and then we never need bother with attaching patches to bugzilla again.

Although I didn't explicitly make mention of it in the video, the other advantage of using Gerrit to store code reviews is that anyone can pull down the code review in-situ in the repository at any time. No more patches going stale in Bugzilla; you can pull them out of the review at any time, and rebase where necessary to bring them back up.

As Eclipse starts moving down the road towards Git migration, it needs to seriously think about the tools in place to make it happen; and if there's not the support for that internally, then it needs to be made to happen externally. You wanted to know how to spend the Friends of Eclipse donations – getting Gerrit and Git in place for all is what's wanted.

Oh, and if you're wondering, the graphical countdown timer is Naughty Step, an app I wrote so that my kids would know how long they have to go when they were naughty, hence the name. It's a bargain at 0.99¢ if you want to buy a copy :-)