ENES

CI/CD

Automation that builds, tests and ships every code change, so releases become routine.

A commit flows through a pipeline of build, test and deploy stages, with a failed test stopping the line before production

CI/CD names two linked practices. Continuous integration (CI) means developers merge their changes into the shared code often, at least daily, and every merge automatically triggers a build and a run of the automated tests. If something breaks, the team learns within minutes, while the change is still fresh, instead of weeks later.

The CD half has two flavors. Continuous delivery keeps the code always ready to release: every change that passes the checks is packaged and can go to production with the press of a button. Continuous deployment goes one step further and releases every passing change automatically, with no button. Teams pick based on how much risk and human approval their product needs.

The automation runs as a pipeline: a list of steps written in a file inside the repository, such as "install, build, run tests, scan for vulnerabilities, build the container image, deploy to staging, deploy to production". Services like GitHub Actions, GitLab CI and Jenkins run these pipelines on every push. The payoff is that shipping software stops being a scary monthly event and becomes a small, frequent, boring one, which is exactly what you want.

Keep in mind

Go deeper

Related terms

More in Software