https://martinfowler.com/bliki/ContinuousDelivery.html
Distinctions:
- Continuous Integration is combining changes made by different people into one codebase frequently
- Continuous Delivery is keeping the system releasable at any time
- Continuous Deployment is actually releasing the system to production many times a day
Key points:
- No separate release branch
- Verify the code is working before it is added to the main branch (CI runs on PRs)
- If the build does break, fixing it is the first priority
- Work in small feature slices
- Keep things releasable at any time
- QA code as it’s delivered and mark as complete
- Deployment is automated and controlled by the team that writes the code
- Don’t plan on a monthly/quarterly release, plan to release as soon as a releasable bit is done