Today is a date to remember. I finally have my primary coding projects (a Houdini plugin, my engine, and a game) doing nightly builds on the three supported platforms: Windows (WinXP), Linux (Ubunutu 8.10), and Mac OS X (v10.5.6). This has been mostly working for a few weeks now, but one thing or another kept breaking causing one of the platforms to not run the cron job successfully.
The entire system has a fairly simple setup right now. It’s basically a collection of Python scripts that are executed once every night. It tracks errors, time it takes to compile, and so on. Once completed, it sends out an email to a local mailing list on my server, so that I wake up knowing everything is working fine (or what I need to fix if it failed). It also supports packaging up a new release and uploading it automatically, but this is an optional step that only the Houdini plugin I’m developing is using right now.
There is still a lot of room for development with this collection of build scripts, but it definitely does the job for now. I would like to create a web interface that keeps track of the projects and platform builds, so that I can get statistics on build times, how often the build is broken on what platforms, and other such information—all of which could potentially be graphed over time to see trends. However, none of this is particularly crucial to the continued development of my projects, so I will only update the build scripts as bugs come up or features are needed.