Continuous Integration/Continuous Deployment (CI/CD)ΒΆ
Continuous Integration and Continuous Deployment (CI/CD) is crucial step in developing an automated processes of CHIME software release. Here at CHIME, CI/CD is integrated through the use of GitHub Actions format, specifically as pipelines that are defined per repository at /.github/workflows/continuous-integration.yml
and /.github/workflows/continuous-deployment.yml
, or similar names. The goal of each pipeline is simple:
- Continuous Integration is a pipeline that typically runs per pull-request and per merge to the main branch, and conducts defined test cases, precommit checks, and anything else needed to verify that the code can be integrated without errors.
- Continuous Deployment is also a pipline that typicaly runs per push to the main branch, and this pipeline typically serves to deploy the new codebase into a packaged, distributable software release through Git Release Tags and typically Docker Image builds to the CHIME DockerHub.
The "Continuous" term simply implies that this is a repeatable, automated process that will continuously occur whenever continuous changes are made to the codebase. In summary, CI/CD allows for automation of code integration and application release.