Continuous integration/continuous delivery (and deployment)
CI/CD is the process of automating most of the steps seen so far (and sometimes some more) in order to straighten the process and have a complete overview of it. Since the process includes many steps executed in a mostly sequential way, the tool providing it is commonly called a pipeline.
A typical CI pipeline includes these steps, usually executed sequentially:
- Building the code (as seen in previous sections).
- Testing, usually limited to static code testing, unit testing, and some limited integration testing. Since deployment has not occurred yet, end-to-end testing is not possible in this phase.
CD includes a few further steps, focused on deployment (also, in this case, usually executed in a sequence):
- Versioning of software artifacts in repositories.
- Deployment of artifacts from repositories to testing environments, including all the configuration needed. This may be done in ephemeral environments...