Introduction to continuous integration

If you are new to the concept of continuous integration you should start reading here. If you have some prior experience you might want to skip ahead to the full documentation guide.

When working on a large project with many components, a change to one component might inadvertently change another component. This is a serious problem especially when several developer work together and might change each other’s code in unexpected ways.

Usually each developer works on a separate branch and when the work is done integrates with the master branch. If the task takes a long time, during this time the developer’s branch might diverge significantly from the master branch. When it’s time to re-integrate the branch there might be many conflicts and unexpected changes which will be hard to fix.

CI methodology strive to solve these problems in two ways:

  1. Reintegrating the code to master branch early and often and making sure all developers work on the most recent version of the code which include all the latest changes.
  2. Developing a complete testing suite with high coverage - which tests all the components. This minimizes unexpected changes and regressions.

Read more in Wikipedia - Continuous integration.

Terminology

  • Unit testing

    Automated tests which verify the validity of your code.

  • Integration testing

    Automated tests which test the application as a whole, including external dependencies.

  • Consistent environment

    All the developers should be able to work on the same configurations and environments.

  • Build automation

    To provide a consistent environment - there should be a single command that will automatically build the required environment and configuration.

Dive into Kms-ci-framework

Table Of Contents

This Page