Main Page - Blog - Books - Links - Resources - About - Contact Me
This page is based on the Continuous Integration appendix (Appendix D) in Ship It!.
A CI system automatically builds your project every time you make a change to it. It watches some set of resources (such as a source code repository, a file system, or even another project), and when they change, it kicks off your build script. When the build is complete, the CI system tells you (or any other important party) the results of the build.
Martin Fowler and Matthew Foemmel wrote an article about Continuous Integration that‘s great introduction to the concept. It‘s located on Martin‘s web site.
CruiseControl.NET- CruiseControl for the .NET Framework. A somewhat different set of features than CC for Java but the same concept.
AntHill- Termed a build management server, AntHill imposes its own build scheme on the build process. However, it has a very nice web interface instead of configuration files. This makes setting up your projects almost trivial. AntHill has both an open-source and commercial version, with extra features available only in the commercial version.
Continuum- Continuum is a new CI system that is designed to be very tightly integrated with Maven. It has a “zero configuration” feature that will seamlessly integrate an existing Maven project.
How you set up the system. A lot of CI systems use configuration files, but some (e.g., AntHill) use a web-based interface.
What actually watches for changes and executes the builds.
How you control the CI system while it’s running.
The things that the CI system can do (e.g., compiling, linking, deploying, installing).
Running new tools from your CI system.
Ways to notify the CI system’s users that a build succeeded or failed. This can include email, web pages, RSS feeds, or lava lamps.
Tracking and presenting information about what got built when and whether the build passed or failed.
Runs on your platform-Does it run everywhere you need it?
Works with your other tools-Can you easily tie in your code profiler, installer, deployment tool, etc.?
Scales to the number of projects you need to build-If you have a lot of projects to build, you need a speedy CI system.
Fully automatic-No manual steps should be required.
Provides appropriate notification-Can it tell you what’s going on in a way you’ll notice?