Quest for an automated build tool

From Freehackers

Jump to: navigation, search

Contents

[edit] Context

Serious projects use nightly builds and tests for Quality concerns. At freehackers, we felt like we would like having some great tools for that. This article is about the search we did, the tool we choose, and a detailed explanation of how we did.

Our purpose is to have daily builds and tests for several projects. Some of them have unit tests, but others don't.

[edit] An overview of existing software

First, we needed to decide about our criteria:

  1. Free software. We don't want close source
  2. Maintained.
  3. Good documentation (better if this is provided by the actual authors)
  4. Can work with different Source management tools, different build tools (qmake, cmake, make, ...) and different languages.

Googling a little, and searching on freshmeat, we've found a lot of different tools. Lot of them are really java centric. Most of them are using close source licences.

At the end remained only two tools : Dart, and buildbot. We now study them more thoroughly.

[edit] Dart

Lot of big projects are using Dart, so we first started by trying this one.

As it's too often the case with free software, the documentation for Dart is freaking lacking. The website basically says nothing, and googling for some howto doesn't help neither. There's no IRC channel. Well. nothing.

The only way to download Dart is by using CVS. Which says a lot about the readiness of the software. (And CVS is such an odd choice nowadays, but that's another point).

Quoting the website as of july, 22nd, 2007:

 Dart can be used on projects without CMake. Additional client
 and server configuration is required. Details will be provided soon.

Basically, Dart fails with points 2,3 and 4 of our criteria list.

[edit] Buildbot

The second one is buildbot.

The last release was done 7 months ago. (Article written on july 22th, 2007, last release december 11th, 2007). Which kinda validate our point 2. It has good documentation : a architecture overview, a well-written README, and a full manual. The installation is easy. So far, it seems that buildbot fulfill our criteria.

It has two other big advantages:

  • It is written in python. We like python :-)
  • It is available in gentoo. Even labelled as stable. This is definitely a sign of it being usable and tested.

Moreover, this tool is used by some important projects : python itself, Openoffice, Zope, and webkit. This last one is interesting, as it is very kde related.

Openoffice is more or less thinking about developing and using their own tool, inspired by buildbot, but it seems dead.

[edit] Feedback on the installation

At first glance i wanted to give details explanation on how to install/configure buildbot, but the documentation is quite straighfoward. I'll give the configuration files we use as example for the communauty. As well as few hints.


[edit] Other build software

After this study, other build software have been discovered, but not studied. Maybe for next time.

Personal tools