BookRags.com Literature Guides Literature
Guides
Criticism & Essays Criticism &
Essays
Questions & Answers Questions &
Answers
Lesson Plans Lesson
Plans
My Bibliography Periodic Table U.S. Presidents Shakespeare Sonnet Shake-Up
Research Anything:        
History | Encyclopedias | Films | News | Create a Bibliography | More... Login | Register | Help
Not What You Meant?  There are 50 definitions for CI.

Continuous integration

Print-Friendly
About 2 pages (636 words)

Bookmark and Share Questions on this topic? Just ask!

The term Continuous integration emerged in the Extreme Programming community describing the software engineering practice of immediately committing every change, no matter how small, to a revision control system. Other developers should always work with the latest version of the codebase. The authors Martin Fowler and Kent Beck published the term; Fowler's paper[1] appearing at the same time as Kent Beck's White Book. Although these practices existed before, extreme programming practitioners recommend that teams require their developers to continuously integrate. For small projects, developers run all their unit tests, and integrate. Large projects often require a longer build and test cycle, so these projects use Automated Continuous Integration. A server process or daemon monitors the version control system for changes, then 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). 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). Scheduled builds, if done frequently enough, would fall under continuous integration. However, nightly builds are too infrequent to qualify. Continuous integration has many advantages:

  • When unit tests fail, or a bug is discovered, developers might revert the codebase back to a bug-free state, without wasting time debugging.
  • Integration problems are detected and fixed continuously - no last minute hiatus before release dates;
  • Early warning of broken/incompatible code;
  • Early warning 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.

Contents

Software

Notable examples of continuous integration software include:

  • Atlassian Bamboo — commercial continuous integration server from Atlassian
  • BuildBot — a Python/Twisted-based continuous build system
  • Build Forge — IBM Rational's adaptive framework to standardize and automate build and release processes
  • CABIE — Continuous Automated Build and Integration Environment. Open source, written in Perl, works with CVS, Subversion and Perforce.
  • Apache Continuum — a continuous integration server supporting Apache Maven and Apache Ant
  • CruiseControlJava-based framework for a continuous build process
  • DamageControl — a continuous integration server for Ruby
  • Electric Commander — a continuous integration server by Electric Cloud
  • Apache Gump — Apache's continuous integration tool
  • Hudson — MIT licensed, written in Java, runs in servlet container, supports CVS, Subversion, Ant, Maven, and shell scripts
  • Tinderbox — a Mozilla based product written in Perl

References

  1. ^ FOWLER, Martin. Continuous Integration.

Further reading

  • Duvall, Paul M. (2007). Continuous Integration. Improving Software Quality and Reducing Risk. Addison-Wesley. 0-321-33638-0. 

External links

View More Summaries on Continuous integration
 
Ask any question on Continuous integration and get it answered FAST!
Answer questions in BookRags Q&A and earn points toward
discounted or even FREE Study Guides and other BookRags products!
Learn more about BookRags Q&A
Copyrights
Continuous integration from Wíkipedia. ©2006 by Wíkipedia. Licensed under the GNU Free Documentation License. View a list of authors or edit this article.

Article Navigation
Join BookRagslearn moreJoin BookRags




About BookRags | Customer Service | Report an Error | Terms of Use | Privacy Policy