Buildbot

There's a buildbot master currently running on video.dyne.org:8090 plus some slaves.

Buildmaster

The buildmaster is a normal system service and runs as buildbot user:

invoke-rc.d buildbot start|stop|restart

the homedir is at /var/lib/buildbot/freej/. Important files are master.cfg and twistd.log

Slaves

They run chrooted as user buildslave under /srv/chroot/<name>, this provides a clean separation without cluttering the master system and plus it is "easy" to add a new system/distribution.

Each <name> must contain a system like a regular developer with all dependencies needed to build freej from git (git/autotools/libs/etc) plus have buildbot installed (for the slave).

Currently installed and working chroots are jaunty64 and jaunty32.

Operating the slave

Thanks to the almighty schroot it is easy to administer the chroots, the chroots configured in /etc/schroot/schroot.conf and then "instantiated" (bindmounted) in sessions:

Start:

name=<chrootname>
schroot -c $name --begin-session --session-name $name-buildslave
schroot -c $name-buildslave --run-session --user buildslave --directory /home/buildslave/freej -- make start

Stop:

name=<chrootname>
schroot -c $name-buildslave --run-session --user buildslave --directory /home/buildslave/freej -- make stop
schroot -c $name --end-session --session-name $name-buildslave

Creating a new buildslave chroot

TODO

Adding a new external slave

TODO, but basically change master.cfg with the new slave name/password and relevant builds and buildbot create-slave --usepty 0 BASEDIR MASTERHOST:PORT SLAVENAME PASSWORD on the slave machine populating BASEDIR/info/ with proper data.