The BuildBot

Our build servers were turned back on over the weekend. They weren’t being used because we have drastically changed how our projects are built. Perforce and Visual Studio files have been replaced with Mercurial and CMake. So, I spent the weekend reconfiguring the buildbot setup Tony had on the servers. I had never configured buildbot before and I was surprised to find it was so easy. I only had to change the repository location and build commands on the buildmaster server. I didn’t have to touch any of the build slaves.

This time around we’ve got both linux and win32 versions of C2 building any time we want. It used to be very difficult to manage both versions of the engine. On win32 we used Visual Studio projects and on linux it was scons or make files. Any change on win32 had to be manually added to the linux project files and vice-versa. Even worse, making a change on a different platform usually meant rebooting into another operating system. With CMake there is now one build file for all platforms and it’s easily edited in a text editor.

The buildbot setup has been extremely beneficial for my linux oriented workflow. I can work on the engine on linux and have buildbot compile it for win32 without the incovenience of booting into windows myself. Judicious unittests catch many issues that can be rectified without having to run the engine proper. In the worst case I rdesktop into our win32 build server from linux and run Visual Studio to fix any build problems. Unfortunately the build server doesn’t have the graphics hardware required to run the engine outright so I still have to boot into windows to test the actual game.

Leave a Reply