Azure DevOps Environments and Approvals
Manually control pipeline stages using Approval check
A successful build doesn’t necessarily mean deploy-ready. Most organizations have automatic and manual checkpoints to ensure all best practices are followed before code hits live(or staging) environment.
After all conditions are met we can add one final step before a build artifact is deployed to live. A manual approval process, a final sign-off if you will, to ensure all necessary business and stakeholders are in the know.
Azure DevOps provides Environments and Approval checks for those environments to ensure the necessary approvals are met before deployment commences. The idea is to have a person/group of users approve the deployment stage.
Let’s say we have a pipeline with just build and deploy stages:
By adding an environment in the pipeline yaml file we can automatically create an environment for a stage. You can also create the environment on the DevOps board and refer to it in the YAML as well. For eg.,
Let’s go ahead and add the approval check for the development environment:
Environment → development → Approval and checks as shown below.
Keep in mind, ALL the approvers added in here are required to approve for the stage to commence. If you need to have multiple people but anyone can approve, simply create a User group and provide the group name as approver.
Approval process in action:
Let’s trigger the pipeline, now once the build is complete and stage reaches development environment stage, it will wait for reviewer approval. The approver will also receive an email requesting the same.
In conclusion
You can manually control execution of a stage in multi-stage pipeline using approval checks. You can use approval checks to control deployments to production environments.