so we're setting up a distributed build-testing system,
BuildBot (http://buildbot.sourceforge.net/), for now at

  http://bugzilla.spamassassin.org:8010/

(that url may change.) it currently has 4 build slaves, building

    - trunk using Red Hat 7.3's perl
    - trunk using vanilla perl 5.6.1
    - trunk using vanilla perl 5.8.5 with threading
    - b3.0 using Red Hat 7.3's perl

If you fancy it, and are running an OS different from the above (!), it
might be worthwhile setting up a build slave to extend this... non-linux
platforms especially would be great.  Any platform where "make test"
currently passes, or nearly does, would be preferred ;)

Notes:

  - the slave process should be kept up and running as much as possible;
    it's got to be a persistent daemon.

  - I'd recommend running as non-root, and not as your own userid. if a
    miscreant managed to get hostile code into SVN trunk, it'd pretty
    quickly get run on your machine by this code.

  - it's not *too* CPU hungry -- but will kick off a compile and "make
    test" *every time* someone checks something into SpamAssassin svn!  so
    if that puts you off, this isn't for you ;)

so pretty much, overall, this requires that you have root on some box
which has a 99%-uptime network connection to set a slave up.



Process to set up a build slave:
--------------------------------

    [install Twisted 1.3.0.  can be omitted if you already have it,
    or just use "sudo apt-get install twisted" if you're on debian
    unstable.]

    [note that you also need python 2.2 or later installed.]

wget http://twistedmatrix.com/downloads/Twisted-1.3.0.tar.bz2
bunzip2 -cd < Twisted-1.3.0.tar.bz2 | tar xvf -
cd Twisted-1.3.0 ; sudo python setup.py install
cd ..


wget 
http://internap.dl.sourceforge.net/sourceforge/buildbot/buildbot-0.6.1.tar.gz
tar xvfz buildbot-0.6.1.tar.gz
cd buildbot-0.6.1 ; sudo python setup.py install

sudo useradd -c "SpamAssassin Buildbot" buildbot
sudo su - buildbot
mkdir -p /home/buildbot/slaves

    [now, you need the buildbot password.  ask on the IRC channel
    and one of the PMC should be able to set you up with one.]

PASSWORD=[password]

    [give your slave a good name, like "debian-stable" or
    "ubuntu-hoary-perl585"]

HOST_OS="hostname-osname"
buildbot slave /home/buildbot/slaves/$HOST_OS bugzilla.spamassassin.org:9989 \
        $HOST_OS $PASSWORD

    [and mail dev/at/SpamAssassin.apache.org the $HOST_OS string you've
    chosen.]

    [to start the slave process]

buildbot start /home/buildbot/slaves/$HOST_OS

    [to monitor slave progress/errors:]

less /home/buildbot/slaves/$HOST_OS/twistd.log

    [to start at boot in future: add this line to crontab:]

@reboot buildbot start /home/buildbot/slaves/hostname-osname


--j.

Reply via email to