Say that you’re developing code which needs to compile and run on multiple hosts (say Linux and Windows), how would you go about doing that in the most efficient manner given that:
- You have full access to hardware for each host you’re compiling for (in my case a Linux host and a Windows host standing on my desk)
- Building over a network drive is too expensive
- No commits to a central repository should be required — assume that there is a CI engine which tries to build as soon as anything is checked in
‘Efficient’ means keeping the compile-edit-run cycle as short and simple as possible.
Most of the build servers mentioned in the other answers check out your changes from a version control system. Given your ‘No commits to a central repository should be required’ requirement, I’d suggest that you try Jetbrains TeamCity CI server.
It has plugins fro Visual Studio and Eclipse and allows you to request a ‘private build‘, sending your changes straight to the build server. For each project you can define a number of build configurations with different requirements (OS is one of the possible reqs). If the builds succeed, the plugin will prompt you to commit your changes.
The free version supports 3 agents and you can buy more if needed.
It looks like Pulse also has the same feature, but I have no first hand experience with it.