Continous integration setup

One repo or multiple repos

  • One repo better

  • One or multiple in the context of micro-services

  • Mono repository for micro service

What is Continuous integration / Continuous deployement

Continuous Integration (CI) : Push changes on developement server quickly and automatically so new changes can be tested earlier

Continous Deployement (CD) : Push changes on production server quickly and automatically so new changes can benefits to users earlier

All the infos here

The most important being :

The practice

  • Maintain a single source repository
  • Automate the build
  • Make your build self-testing
  • Every commit should build on an integration machine
  • Keep the build fast
  • Test in a clone of the production environment
  • Make it easy for anyone to get the latest executable version
  • Everyone can see what’s happening
  • Automate deployment

How to do it

  • Developers check out code into their private workspaces
  • When done, commit the changes to the repository
  • The CI server monitors the repository and checks out changes when they occur
  • The CI server builds the system and runs unit and integration tests
  • The CI server releases deployable artefacts for testing
  • The CI server assigns a build label to the version of the code it just built
  • The CI server informs the team of the successful build
  • If the build or tests fail, the CI server alerts the team
  • The team fixes the issue at the earliest opportunity
  • Continue to continually integrate and test throughout the project

Team responsibilities

  • Check in frequently
  • Don’t check in broken code
  • Don’t check in untested code
  • Don’t check in when the build is broken
  • Don’t go home after checking in until the system builds

Which CI server to choose

A comparison of continuous integration tools

  • Amazon AWS tutorial for contiuous integration
Written on January 24, 2018