What Is CI/CD and How Does It Work? | Synopsys

Objective of CI/CD

Continuous integration automates the building and testing of your software. Continuous deployment is an extension of this automation and allows for your software to be deployed after every code commit that passes your test suite.

Build stage

In the build stage, multiple development teams contribute code developed on their own machines into a shared repository. This sounds simple but quickly introduces complexities. Beyond version control, problems can arise including subtle differences in developer and production environments, tooling, and quality of code. The advantage of including the build process in your pipeline is that it automates developer contributions and provides tools to standardize software quality and environments.

Testing stage

All too often, development teams move directly to the deploy stage. This is a mistake because the testing stage is where the key benefits of CI/CD shine. Testing is a complex and repetitive process that your CI/CD pipeline helps automates for you.

There are several different types of testing all of which can be used together in an automated continuous integration pipeline. You can combine unit testing with integration testing to provide the most test coverage possible. Testing also contributes vital data about software performance that can immediately be integrated back into the code. The result of testing is high quality software with fewer and fewer bugs.

Deploy stage

The deploy stage is where you can orchestrate software releases to production or other environments. Your pipeline can be configured to deploy code on a schedule, roll out software to all customers or just a select group, and even roll back releases when there is a problem. You get to decide what the best strategy is for getting updated software to your customers. It can all be automated as part of your CI/CD pipeline.

The most successful development teams deploy their software often. To deliver high-quality software efficiently means building, testing, and deploying code using CI/CD best practices.

REF: https://circleci.com/blog/what-is-a-ci-cd-pipeline