Any code change may trigger a build, and any successful build can be deployed to staging automatically.
Following implementation is applicable for the projects that uses AWS to manage their CI/CD pipeline.
- Create Code Build projects for frontend and backend projects
- [Optional] If the backend consists of multiple microservices, create Code Build project for each
- Link Code Build project with GitHub via Webhook (Configure from Code Build console)
- Create Code Pipeline projects for Production/Staging/Dev environmets
- Link Code Build projects in each Code Pipeline as steps (Parallel/Serial)
- Link the GitHub branch (e.g. Production/Staging/Dev) that corresponding CodePipeline should be triggered
- Configure CodeBuild status update to be published to GitHub
- Configure manual approvals if you think both frontend and backend deployments are unnecessary for each release
- Add manual approval steps in the Code Pipeline particularly for production release
- Send emails to interested parties when the CodePipeline is finished
- Canary deployment can be added by ticking off canary deployment check on the microservice (AWS API Gateway Level)
- Rollbacks are not yet directly supported as part of CodePipeline
- We need to use CodeDeploy project to configure rollbacks with the pipeline