Day 3 Challenge — Improve Your Pipeline
01/06/2026About 1 min
Day 3 Challenge — Improve Your Pipeline
You now have a working pipeline with validation, security scans, artifact creation, deployment to dev, post-deployment testing, and promotion to test.
Pick a challenge and improve the existing setup.
Challenge A — Production Deployment
Add a production deployment stage.
Requirements:
- deploy only from
main - depend on successful test deployment
- use the same build artifact
- require approval through an Azure DevOps environment
- run a simple production smoke test
Challenge B — Better Artifact Traceability
Improve how the pipeline proves what was built and deployed.
Requirements:
- include metadata such as commit SHA, build number, branch, and build date
- print metadata during deploy stages
- prove dev and test use the same artifact
- publish deployment evidence as a pipeline artifact
Challenge C — Rollback Preparation
Prepare the pipeline for rollback.
Requirements:
- record which artifact was deployed
- keep previous artifacts available
- document how to redeploy a previous known-good artifact
- optionally add a manual rollback stage placeholder
Challenge D — Key Vault Secret Handling
Move one secret out of YAML or app configuration and into Key Vault.
Requirements:
- store at least one secret in Azure Key Vault
- avoid hardcoding the secret in YAML
- give access only to the identity that needs it
- document whether the pipeline or application reads the secret
Challenge E — Environment Configuration
Improve dev/test configuration separation.
Requirements:
- configure environment-specific App Service settings during deployment
- keep environment-specific values out of the artifact
- document which values differ between dev and test
- prove the same artifact behaves differently because of configuration
Challenge F — Better Post-Deployment Verification
Improve the checks that run after deployment.
Requirements:
- test at least two deployed API endpoints
- fail or warn clearly when the app is unhealthy
- publish useful output for troubleshooting
- optionally compare dev and test responses