Today I installed Buildbot on Windows XP and even got it to run successfully as build slave. It was both harder and easier than I expected. Or more specifically, installing all the dependencies was harder than I thought, but configuring and running the slave was easier than I thought.
I have run Buildbot server and slaves on Linux based systems without any problems. Once you have setuptools installed, it is just a matter of
easy_install buildbot and creating the configuration files. I thought once I had Python and setuptools installed on Windows it would be equally simple. Not so.
First of all I tried to use somewhat nonstandard Python 2.5, for which there was no registry entry. This meant that none of the dependencies that had their own executable installers worked. When I tried the zipped versions, these also failed because apparently my Python was compiled with different version of Visual C++ than the extensions I was trying to install. I got past this by grabbing a standard Python installer and going from there.
Next I tried to install setuptools from the exe installer. That failed because it could not find
msvcrt71.dll. I downloaded that and put one in
Python\DLLs directory and one if the directory from which I was trying to run the installers. Then I was able to get setuptools installed.
After I modified
PATH to include the Python and Python\Scripts directories I tried to use
easy_install, but it failed to install any package that contained native code. I also added
PATHEXT as described in the Buildbot README.w32 file. I continued by grabbing the exe installers of the dependencies and running them one by one. Note that this might be too long, but I found these from various pages describing how to run Buildbot on Windows:
pyopenssl. I used the latest stable release of each.
Next step was buildbot itself. I downloaded the sources, unpacked, and run
python setup.py install.
For a change, easy_install worked for the next two packages I wanted to use for the actual tests:
buildbot create-slave command worked fine, but when I first tried to start my slave it would just sit there without doing anything nor giving any errors. It turned out I had given wrong machine name as the buildmaster. I would have expected an error when trying to start. Once I fixed that, the buildbot slave was running correctly. (Note that I have not yet tried to run it as service.)
Finally it was just a matter of fixing broken tests and installing any dependencies the code I was testing had (like .NET 3.5). Feels good having some assurance that the changes I make on Linux won’t hose the Windows world.