I am currently using a Debian stable (5.01) system, but this should work similarly on other distributions or with BuildBot installed from source.
$ sudo aptitude install buildbot
edit /etc/default/buildbot:
BB_NUMBER[0]=0 # index for the other values; negative disables the bot BB_NAME[0]="foo" # short name printed on startup / stop BB_USER[0]="buildbot" # user to run as BB_BASEDIR[0]="/var/lib/buildmaster" # basedir argument to buildbot (absolute path) BB_OPTIONS[0]="" # buildbot options BB_PREFIXCMD[0]="" # prefix command, i.e. nice, linux32, dchroot BB_NUMBER[1]=1 BB_NAME[1]="bar" BB_USER[1]="buildbot" BB_BASEDIR[1]="/var/lib/buildslave" BB_OPTIONS[1]="" BB_PREFIXCMD[1]=""
$ sudo buildbot create-master /var/lib/buildmaster
$ sudo cp /var/lib/buildmaster/master.cfg.sample /var/lib/buildmaster/master.cfg
edit /var/lib/buildmaster/master.cfg:
change the Builders code to:
repourl = "git://git.etherboot.org/scm/gpxe.git" branch = "master" from buildbot.process import factory from buildbot.steps.source import Git from buildbot.steps.shell import Compile f1 = factory.BuildFactory() f1.addStep(Git(repourl=repourl, branch=branch)) f1.addStep(Compile(command=["make", "-C", "src"]))
change the owner of these files to the one the Debian init scripts expect:
$ sudo chown -R buildbot /var/lib/buildmaster
configure a slave:
$ sudo buildbot create-slave /var/lib/buildslave localhost:9989 bot1name bot1passwd $ sudo chown -R buildbot /var/lib/buildslave
start the master and slave:
$ sudo /etc/init.d/buildbot start
At this point, the web interface (port 8010 by default) should be accessible on the master.
To force a test build, try something like:
$ sudo buildbot sendchange --master localhost:9989 --username change --revision 92a9978b4403628345ca03ba4edc7641352460fa --comments "Test change #3" COPYING
(COPYING is there since some file is needed or else no build will happen; in a real setup, sendchange would be called by a git commit hook or a cron job with actual commit information.)