New Mono Build Service

by Miguel de Icaza

In the past we used Buildbot as the tool to keep an eye on the continuous builds of Mono across multiple architectures.

But buildbot was painful to manage, to add new tasks (for example, tracking multiple branches) and hosts we had to restart the server and we would have to update the machines in the cluster with the new scripts, which was an error prone task. The other problem we faced was that upgrading buildbot meant upgrading buildbot on assorted machines with different operating systems. And this was not limited to buildbot, but to all of its dependencies down to Python.

Wade started working on a new centralized system which could be controlled from a central location. It does not require the build software to be installed on the target machines, but only on the central machines.

The new system is available here.

In addition, since its daemon-less, getting a "jail" up and running with the new software building system requires very little intervention on the jails.

Wade added a few features to the system: its possible to track the state of the current/last build, and the previous build. The releases use SVN release numbers and can track multiple modules and multiple branches in our cluster.

The various passes of the build can be seen here for example.

Internally the build system creates tarballs and RPMs (they are available in our internal server). Hopefully once we reformat the machine hosting the current build status, we will be able to host the packages as well (the current public machine listed above does not have disk space).

Posted on 20 Jul 2006