From a high level, a CD/CD pipeline usually consists of the following discrete steps: Commit. When a developer finishes a change to an application, he or she commits it to a central source code repository. Build. The change is checked out from the repository and the software is built so that it can be run by a computer. This steps depends a lot on what language is used and for interpreted languages this step can even be absent. Automated tests. This is where the meat of the CI/CD pipeline is. The change is tested from multiple angles to ensure it works and that it doesn’t break anything else. Deploy. The built version is deployed to production. The entire pipeline should be as automated as makes sense for your organization. Maximum automation would be that a single commit by a developer will automatically result in an update to production a few hours later.