Continuous Integration(CI)

What is this?

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

Benefits of using CI?

  • Decrease some routine work of developer
  • Reduce integration problems, debugging time and allows company to deliver software faster
  • Increase visibility of work processes for each team member

Rules of doing this

  • Auto build using CI tools
  • Build should be covered by height amount of tests, and push should be tested to keep main branch production-ready at any time
  • Often commits and often pushes, to keep your branch close to master

One of good CI practices - Git flow

Git flow
Continuous Deployment & Continuous Delivery
Continuous Deployment is CI plus auto deployment of build to the test server.
Continuous Delivery is CI plus auto deployment of build to the production server. And it is really risky thing to do. Becouse customer will be able to see your mistaces.
CD
CI/CD Tools with their advantages and disadvantages
Tools