Langbahn Team – Weltmeisterschaft

Continuous integration: Difference between revisions

Content deleted Content added
Stemcd (talk | contribs)
Stemcd (talk | contribs)
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/screenshots.html Luntbuild], another [[SourceForge]] hosted framework, claims to be a Build Management tool
* [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