The Best Continuous Integration Tools, Page 4
Another very useful feature is an automatic update notification via Hudson's excellent UI, which shows that there are updates available for particular installed plug-ins.
Figure 8: Hudson Management UI
Similarly to the other tools, Hudson can show visually what artifacts changed between builds and who committed them in to the source control system.
View what artifacts changed since the last build.
Figure 9: Hudson Build changes
In this article, you have reviewed the process of the continuous integration process and several of the most popular tools that implement this concept. Continuous integration has many advantages:
- Integration problems are detected and fixed continuously—no last-minute hiatus before release dates
- Early warning of broken/incompatible code and of conflicting changes
- Immediate unit testing of all changes
- Constant availability of a "current" build for testing, demo, or release purposes
- The immediate impact of checking in incomplete or broken code acts as an incentive to developers to learn to work more incrementally with shorter feedback cycles
- When unit tests fail, or a bug is discovered, developers might revert the codebase back to a bug-free state, without wasting time debugging
Any enterprise development team involved in a continuous software build process should seriously consider installing one of these tools because they are very valuable in identifying issues with the code as soon as they happen, analyzing the code for correct logic and structure, generating visual issue reports, and reducing the actual build cycle time.
The most popular tools offer a similar set of features, and choosing the right one will depend of the very specific features, such as quality of UI or presence of the role-based security. But, any tool you choose will definitely do the most important tasks of checking out, building, and continuously integrating your code.
References and Online Resources
- Martin Fowler
- Kent Beck
- Continuous Integration: http://en.wikipedia.org/wiki/Continuous_Integration
- Continuous Integration, Martin Fowler: http://www.martinfowler.com/articles/continuousIntegration.html
- Guide to building .NET projects using Hudson: http://redsolo.blogspot.com/2008/04/guide-to-building-net-projects-using.html
- Continuum: http://continuum.apache.org/
- Cruise Control: http://cruisecontrol.sourceforge.net/
- Hudson: https://hudson.dev.java.net/
About the Author
Vlad Kofman is working on enterprise-scale projects for major Wall Street firms. He has also worked on defense contracts for the U.S. government. His main interests are object-oriented programming methodologies, UI, and design patterns.