Continuous integration: Difference between revisions
Line 20: | Line 20: | ||
* [http://cruisecontrol.sourceforge.net/ Cruise Control] - a [[SourceForge]] hosted framework for a continuous build process |
* [http://cruisecontrol.sourceforge.net/ Cruise Control] - a [[SourceForge]] hosted framework for a continuous build process |
||
* [http://www.mozilla.org/tinderbox.html Tinderbox] - a [[Mozilla]] based product |
* [http://www.mozilla.org/tinderbox.html Tinderbox] - a [[Mozilla]] based product |
||
* [http://www.pmease.com/luntbuild |
* [http://www.pmease.com/luntbuild Luntbuild], another [[SourceForge]] hosted framework, claims to be a Build Management tool |
Revision as of 13:31, 14 July 2005
Continuous Integration is a Software Engineering term describing a process that completely rebuilds and tests an application frequently. Generally it takes the form of a server process or Daemon that monitors a file system or version control system (such as CVS) system for changes and automatically runs the build process (e.g. a make script or Ant-style build script) and then runs test scripts (e.g. JUnit or NUnit). Other approaches use nightly or hourly builds. In many cases the build script not only compiles binaries but also generates documentation, website pages, statistics and distribution media (such as Windows MSI files or RPM files.
Continuous integration is frequently associated with Extreme programming and other Agile software development practices, but can be, and has been, adopted by more conventional methodologies too.
The main advantages of continuous integration are:
- Integration problems are detected and fixed continuously - no last minute hiatus before release dates;
- Early warning of broken/incompatible code;
- Immediate unit testing of all changes;
- Constant availability of a "current" build for testing or demo purposes.
The main disadvantages are:
- The overheads of maintenance;
- The need for a dedicated build server;
- The immediate impact of checking-in incomplete or broken code acts as a disintentive to developers to provide frequent (backup) check-ins.
Software
- Cruise Control - a SourceForge hosted framework for a continuous build process
- Tinderbox - a Mozilla based product
- Luntbuild, another SourceForge hosted framework, claims to be a Build Management tool