# CI & CD

![continuous delivery](../../.gitbook/assets/continuous_delivery_pipeline.png)

## Learning checklist

* **Continuous integration** \(of code\): 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.
* **Continuous delivery**: a software development discipline where you build software in such a way that the software can be released to production at any time \(the 'beach test'\).

This [article](https://thenewstack.io/understanding-the-difference-between-ci-and-cd/) provides a good overview of the history and how the practices were developed.

## Resources

### Recommended reading

* [Continuous Integration](https://www.martinfowler.com/articles/continuousIntegration.html)
* [Continuous Delivery](https://martinfowler.com/bliki/ContinuousDelivery.html)
* [CI/CD best practices](https://www.digitalocean.com/community/tutorials/an-introduction-to-ci-cd-best-practices)

