Top 5 Distributed Build Servers
There seems to be a new push in the build server space to move to a distributed model. Here’s a quick run down of some server choices and why they should be a welcomed change to your development environment.
Pulse is an automated build (or continuous integration) server designed to work with you to ensure the integrity of your most precious asset: your code. Pulse regularly checks your source code out from your source control server, builds your projects and notifies you of the results.
TeamCity is an integrated team environment which, following the tradition of IntelliJ IDEA, brings the software team productivity to a whole new level. As IntelliJ IDEA solves every-day needs of a single developer, TeamCity is intended to solve every-day needs of a development team…
TeamCity is still in beta but is my favorite because of it’s tight integration with JetBrain’s IntelliJ IDE, strong team communication features (IDE Talk), and delayed checkin where tests are run remotely on your pending code and only checked into the source repository only if the tests pass.
QuickBuild is the professional version of the popular open source build server, Luntbuild. It is a cross-platform build automation and management server that unifies all levels of builds such as continuous integration, daily build, QA and release build. Build can be promoted from one level to another, triggering desired steps such as sending notification, source code re-labeling, etc. QuickBuild enables a build-centric process to drive the smooth delivery of builds between different groups of the team, for example, from developer to QA, from QA to release manager, etc. Hudson**</a>, a java.net project. Hudson monitors executions of repeated jobs, such as building a software project or jobs run by cron. Among those things, current Hudson focuses on the following two jobs:
- Building/testing software projects continuously, just like CruiseControl or DamageControl.** In a nutshell, Hudson provides an easy-to-use so-called continuous integration system, making it easier for developers to integrate changes to the project, and making it easier for users to obtain a fresh build. The automated, continoues build increases the productivity.
- Monitoring executions of externally-run jobs**, such as cron jobs and procmail jobs, even those that are run on a remote machine. For example, with cron, all you receive is regular e-mails that capture the output, and it is up to you to look at them dilligently and notice when it broke. Hudson keeps those outputs and makes it easy for you to notice when something is wrong.
Parabuild is a software build management server that helps software teams and organizations reduce risks of project failures by providing practically unbreakable daily builds and continuous integration builds.
Parabuild features an effortless installation process and easy overall use, multi-platform remote builds, fast Web user interface, a wide set of supported version control, and issue tracking systems.
- [Vincent Massol Think Tank - Distributed Build](http://blogs.codehaus.org/people/vmassol/archives/001006_distributed_build.html) - a blog post from early 2005 advocating a distributed build architecture.
- [Martin Fowler on Continuous Integration](http://www.martinfowler.com/articles/continuousIntegration.html) - "Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day."
- [Continuous Integration @ Wikipedia](http://en.wikipedia.org/wiki/Continuous_integration)