Skip to content

What is Continuous Integration?

Philip Callender edited this page Mar 26, 2016 · 4 revisions

Back: How Docker helps staging and production       Next: CI for Webdesign projects

A great description of Continuous Integration comes from ThoughtWorks:

Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several times a day. Each check-in is then verified by an automated build, allowing teams to detect problems early.

By integrating regularly, you can detect errors quickly, and locate them more easily.

https://www.thoughtworks.com/continuous-integration

In our case, we use a Cloud-based service named CircleCI, which integrates tightly with Github, where we store our source code. For a properly configured project, every time code or a web design is checked into Github, CircleCI will pull down the code, build it, and run tests. If all goes well it will then publish - in our case to our Artifactory repository or to our private Docker Hub, depending upon the type of the project.

If a build fails, or the project's tests fail then emails are sent to the members of the project team. (_If this isn't happening, contact the DevOps team to have the configuration corrected).

CI can give us huge time savings by automatically looking after our publishing and deployment issues.

We simply save our project changes to Github, and we magically get:

  1. Tests run, and the project team notified of errors

  2. jar files installed into Artifactory

  3. Docker images being published to Docker Hub, tagged with the build number and a timestamp.

From here, we can simply pull the Docker image for a project into any QA, staging, or production environment.

Clone this wiki locally