In Azure DevOps pipelines you can use approvals in order to allow or not the deployment based on user input on a pipeline.
Find my article on how to create approvals on build and release pipelines below.
But what happens if you want to run some tasks, get user input and then continue with some other tasks? For this reason you could use the Manual Validation task. As the name indicates, you can validate the user input and perform actions based on this input.
If you approve the execution then the pipeline will continue and if not the pipeline will stop.
You can then use the result of the previous job in order to perform other actions with succeeded() or failed() conditions.
An example of the Validation Task is shown below:
trigger: - none pool: vmImage: ubuntu-latest jobs: - job: job1 pool: server steps: - task: ManualValidation@0 inputs: notifyUsers: 'email@example.com' instructions: 'continue?' - job: job2 dependsOn: job1 steps: - script: echo Hello, world! displayName: 'Run a one-line script'
The ManualValidation should be used mandatory with pool:server as shown above because it is an agentless job and cannot be run on the standard agent pools.
The job2 as it depends from job1 will run only if the approval is not rejected from the user.