Learning project for Lab 3: CI/CD pipeline architecture.
This repository uses a multi-stage GitHub Actions workflow:
test -> build -> deploy_staging -> verify_staging -> deploy_production
test: runs unit tests fromtests/test_core.pybuild: creates build artifactartifact/build.txtdeploy_staging: simulates staging deployment using the artifactverify_staging: runs post-deploy smoke verificationdeploy_production: simulates production deployment after manual approval
The deploy_production job uses GitHub Environment production.
To enable manual approval:
- Open repository settings.
- Go to Environments.
- Create environment
production. - Add
Required reviewers.
After that, production deployment will wait for approval.
- Break unit test in
tests/test_core.pyand push commit. - Confirm pipeline fails on stage
test. - Fix the test and push again.
- Run workflow manually with input
force_verify_fail=true. - Confirm pipeline fails on
verify_stagingand production is not executed. - Run again with
force_verify_fail=false.