Continuous integration


Continuous integration is a computer model initially proposed by Martin Fowler that consists of making automatic integrations of a project as often as possible in order to detect failures as soon as possible. We understand by integration the compilation and execution of tests of an entire project.

The process is usually: from time to time (hours), download sources from version control (eg CVS, Git, Subversion, Mercurial or Microsoft Visual SourceSafe) compile it, run tests and generate reports.

For this, applications such as Solano CI, Bamboo, Continuum, Hudson, Jenkins, CruiseControl or Anthill (for Java projects) or CruiseControl.Net, Team Foundation Build for .Net, are used to control executions, supported by other tools such as Ant or Maven (also for Java projects), or Nant or MSBUILD (for .Net) that are responsible for compiling, running tests and reporting.

Continuous integration is often associated with extreme programming methodologies and agile development. Advantage

wiki