1. Continuous Integration —> CI

Practice of automating the integration of code changes from multiple contributors into a single software project

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/65c21fdb-ee60-4e0e-80ed-38b052bcbc1d/Screen_Shot_2021-04-26_at_4.30.47_PM.png

1.1 Key principles and processes

  1. Write tests:
  2. Use code coverage checkers
  3. Merge and integrate code as often as possible
  4. Ensure the build always works (i.e. is "green")

1.2 How it works???

Typically tests will be run by a "runner", which is an application that works with your version control software (git) to execute the tests. This is because tests can require quite resource intensive activities.

2. Continuous delivery —> CD

a practice of automating the entire software release process.

The continuous delivery process typically includes at least one manual step of approving and initiating a deploy to production.

3. Continuous deployment

a step up from Continuous Delivery in which every change in the source code is deployed to production automatically, without explicit approval from a developer.