This project contains configuration for master and slaves to build and test Psycopg on supported platforms.
If you are interested in providing a build slave, for example if you want to be sure that Psycopg works as expected on your platform or with your server configuration, you can provide a specific build slave.
The code is currently tested with buildbot 0.8.3p1. You can try your luck with a newer version, but if you are not into gambling you can specify the release and install its dependencies using:
sudo easy_install buildbot==0.8.3p1
In order to create a slave you will need to:
- configure your slave... in the master: see Configuring a slave,
- run a local copy of the master: see Running the master,
- create a new slave and run it: see Creating a slave,
- go on
http://localhost:8010and use the web interface to test the slave configuration.
Once you are happy send us a patch containing the configuration and the password for the slave.
Configuring a slave
Surprisingly enough, the slaves configuration resides in the master. So, if you want to create a new slave (e.g. to test Python 2.7 against PostgreSQL 9.1 on Slackware 64 bit) you need to:
- define the slave configuration in
- add your slave to the
- add jobs for the slave in the
These files already contain a few configured slave: use them to understand how to configure yours.
Once you have configured your slave, send us a patch to allow us to send it the correct jobs.
Running the master
The official master runs on maya.initd.org. You may want to run a master on your box in order to test a build process:
- check out this project code,
- create a build directory,
buildbot.tacand set the build directory as
make startto start the build master,
- take a look at
twistd.logto check the system started correctly.
Creating a slave
Because all the configuration is in the master, the slave itself has little
configuration: it only knows how to reach the master. If you only need a slave
you don't even need the buildbot package: you may use
buildbot-slave to get only the slave part.
Create an unprivileged user
Create a dir
Decide a name for the slave, e.g. after your host name.
Make a random password, e.g. with:
python -c "import hashlib; print hashlib.md5(open('/dev/urandom').read(16)).hexdigest()"
Create the slave:
sudo -u buildbot buildbot create-slave /var/lib/buildbot/NAME maya.initd.org:49989 NAME PASSWORD
(the command may be different using the
Add informations to
To run the slave you can use:
sudo -u buildbot twistd --nodaemon --no_save -y buildbot.tac
in the slave directory. The slave actions are logged in
You can use
localhost:9899 instead of
maya in order to test the slave
with a master of your own. You can change the values later in the
buildbot.tac file. In order to allow the slave to connect to your local
master you must add the slave password to the
Starting the slave with upstart
In order to have your slave automatically start with your machine, you may use
an upstart (such as
/etc/init/psycoslave.conf) script similar to this one:
description "psycopg buildbot slave" start on runlevel  stop on runlevel [!2345] respawn script cd /var/lib/buildbot/psycoslave sudo -u buildbot twistd --nodaemon --no_save -y buildbot.tac end script