Two solutions that come to my mind:
Buildbot
BuildBot is a highly customizable continuous integration system written in Python. The master component offers a convenient web interface for monitoring and running assemblies; subordinate components are placed on the target computers (usually virtual machines, but they can be one of the developers Mac laptops). The docs are good enough to create a basic system, the setup can be a little complicated (at least for me). Using the latches / push hooks provided by VC systems, you can easily activate the master and trigger assemblies for slaves. It also supports incremental builds (required if your project is large).
Cdash
Developed by CMake's authors, CDash is a build of web applications that come from across the network, not what you asked for, but I think it's worth a try. Very powerful if you have a development team that could continuously send the build result on their machines to the server (and if you use CMake, it's almost transparent). You cannot run builds from the server, as Buildbot does, but you can configure a group of virtual machines using cron, which checks for changes and, in case, builds and sends the results to CDash
Masci
source share