Buildbot HOWTO

About:
Buildbot is a system for testing software across platforms. Its main use is for when new SVN commits are added, it automatically checks out the new code on each registered slave machine and attempts to build the software. This helps ensure fixing one thing doesn't break another, and so on. Linbox's buildbot status page can be seen at http://linalg.org:8010.

Here are the basics you need to get a buildbot slave up and running. For more detailed instructions, refer to http://buildbot.net/repos/release/docs/buildbot.html#Installation. Also, the README file within the buildbot directory serves as an excellent guide.

Requirements:
Python 2.5 or later
Twisted 2.0.* or later

Installing:
After unpacking the tarball, do:

python setup.py build

python setup.py install

To check things went smoothly, try:

buildbot --version

If it shows the versions of Buildbot and Twisted, everything is OK and ready for slave creation.

Setting up the slave:
First of all, three things need to be synchronized with the buildbot master:

  • your slave's name
  • the password assigned to your slave
  • the hostname and port number of the buildmaster (http://linalg.org, 4321)

Currently, a convention is being worked out to name the slaves... it will likely involve host operating system and version, and the gcc (or other compiler) version number, for starters. Next, create a working directory on your machine for the buildslave. Use whatever is convenient for you. This is essentially a sandbox where an SVN copy of Linbox will be checked out and built. This should be separate from your working Linbox directory, of course, to avoid overwriting any work you have outstanding. Finally, after settling on the SLAVENAME, and PASSWORD with the buildbot admins (essentially through e-mail with Dave Saunders), run the command:

buildbot create-slave WORKDIR MASTERHOST:PORT SLAVENAME PASSWORD

Finally, to start your slave for real, run the command:

buildbot start WORKDIR

You might want to put this into a cron job to run each time your machine is rebooted. For more info see the Buildbot Manual linked above.

Note:

Further collaboration with the Buildbot admins could be needed if you have some of Linbox's dependencies installed in atypical locations. When this is the case, we can create specialized arguments to pass to Linbox's configure script, so that everything works out for you.