What is a Build Server?

A build server is a server devoted to continuously build and test the application via a long running agent process. From the developer's point of view the process is completely automated. An open source application named CruiseControl is used for this purpose (http://cruisecontrol.sourceforge.net). By merely checking changes into the source control system, the application developer has told the build server (or just the "build" for short) all it needs to know about the change. No direct contact from developer to build server is required or allowed for that matter. This isn't to say, however, that there is little interaction between the developer and the build server. The build server is prone to get upset about changes that cause application not to work right. That is its job. And, frankly, it is not shy about complaining when it gets upset. Complaining is a nice word but "nagging" is actually more accurate; as a matter of fact our build server has a configuration value set: nag=true.

The following describes the expected way the build server will behave and how/why we should try to make it happy: