Buildbot
We are using Buildbot to automate the building and testing of Cmgui. This page details the process of how and where Buildbot is setup.
Buildbot Master
We have setup a Cmgui Buildbot master on bioeng1030. This machine is an Ubuntu 10.04 and exists solely for the purpose of running Buildbot masters. At the current time we are running individual Buildbot masters for each project (Cmgui, CellML, OpenCMISS).
Setting up a Buildbot master is a relatively straight forward process, first install it:
sudo apt-get install buildbot
next we need to create a Buildbot master and configure it, creation is easy configuration is a little bit more involved:
buildbot create-master bbmaster_cmgui
The configuration script and information can be found here-ish -> https://tracker.physiomeproject.org/show_bug.cgi?id=2974. The configuration has copius comments on the how, why and wherefore. After configuring the Buildbot master you can issue a helpful commands to see if you have any problems:
buildbot checkconfig bbmaster_cmgui
To get things going we need to start the Buildbot master:
buildbot start bbmaster_cmgui
You can make changes to the configuration and get the build master to reconfigure itself with the following command:
buildbot reconfig bbmaster_cmgui
We are all done. If you go and have a look at http://bioeng1030:8269 you should see some Buildbot info and be able to look at how the building and testing is going.
To truly be a master you need some slaves. The next sections discuss setting up Buildbot slaves on various platforms.
GNU/Linux Buildbot Slave
Setting up a GNU/Linux Buildbot slave is ridiculously easy:
buildbot create-slave bbslave_cmgui bioeng1030:9269 <NAME> <PASSWORD> buildbot start bbslave_cmgui
So the 'NAME' and 'PASSWORD' as seen above are set for each particular machine these you get to choose for yourself, but it does work best if they match what the Buildbot master you are intending on connecting to is expecting.
Windows Buildbot Slave
Setting up a Windows slave was not so easy for me. But I managed it and the following is the process I went through to get it to work for me.
First we will gather and install the required software (I didn't do it in this order I spent loads of time hunting and trying to understand the windows install notes).
- Python 2.7 from http://python.org/download/releases/2.7.2/
- pywin32-216.win32-py2.7 from http://sourceforge.net/projects/pywin32/files/pywin32/Build216/
- pyOpenSSL-0.12.winxp32-py2.7 from https://launchpad.net/pyopenssl/+download
- Slik-Subversion-1.6.17 from http://www.sliksvn.com/en/download
- Twisted-11.0.0.winxp32-py2.7 from http://twistedmatrix.com/trac/
- zope.interface-3.6.4.tar.gz from http://pypi.python.org/pypi/zope.interface#downloads
- buildbotslave-0.8.4 from http://pypi.python.org/pypi/buildbot-slave
After installing Python 2.7 I added:
C:\Python27;C:\Python27\scripts;
to my system environment PATH variable. Five of the required dependencies are Windows installers and are pretty easy to deal with, I'll leave that to the user. For the remaining two I did the following. Oh, as a note I already have 7zip installed for all my compression/decompression needs.
For zope.interface
- Uncompress zope.interface using 7zip
- Open a command window and change into the zope.interface directory
- Run the following commands:
python setup.py build python setup.py install
For buildbotslave
- Uncompress buildbotslave using 7zip
- Change directory into the uncompressed buildbotslave directory
- Run the following commands:
python setup.py build python setup.py install
You can of course skip the middle man for both of these and just run:
python setup.py install
Now all that is left to do is to create the slave and start it off:
buildslave create-slave bbslave_cmgui bioeng1030:9269 <NAME> <PASSWORD> buildslave start bbslave_cmgui
Again the 'NAME' and 'PASSWORD' as seen above are set for each particular machine these you get to choose for yourself, but it does work best if they match what the Buildbot master you are intending on connecting to is expecting.