Continuous Integration (CI) is a software development approach in which developers merge their code into a common repositories several times in a day. To merge the code, every check in should run build and run a set of tests that ensures that common repository is always ready for deployment. There are many tools for CI that help in running build, running tests and providing feedback back to developer checking in code. CONTINUOUS INTEGRATION is a practice of making changes to source code made by a single developer available as frequently as possible to other developers using the same source code, with the goal of reducing the amount of time spent resolving conflicts that arise from multiple developers modifying related modules at the same time.
Hence, we can say it is the process of automating your code’s compile, static code analysis, documentation generation, etc for every single check in of code. The goal is to develop a robust build pipeline so that anything that breaks the pipeline is identified as fast as possible, because every single checked in change automatically leads to a complete run of the entire building pipeline. After having a successful CI for build, one can then make ‘build pipelines’ generating docs after a successful build, generating quality reports and maybe automatically deploying to/setting up test/production if one’s project have reach the expected quality and all unit, integration, smoke and qa tests pass. Ultimately, with its help we can build our project and execute tests in a clean isolated environment each time one commit on CVS, with the help of a continuous build tool.