ManualValidation@1 - Manual validation v1 task

Pause a pipeline run to wait for manual interaction. Works only with YAML pipelines.

Syntax

# Manual validation v1
# Pause a pipeline run to wait for manual interaction. Works only with YAML pipelines.
- task: ManualValidation@1
  inputs:
    notifyUsers: # string. Required. Notify users. 
    #approvers: # string. Approvers. 
    #allowApproversToApproveTheirOwnRuns: false # boolean. Allow approvers to approve their own run. Default: false.
    #instructions: # string. Instructions. 
    #onTimeout: 'reject' # 'reject' | 'resume'. On timeout. Default: reject.

Inputs

notifyUsers - Notify users
string. Required.

Send a manual validation pending email to a comma separated list of specific users (or groups). You can send an email to a group using the [org name]\group name syntax.

This task input is required, but you can specify an empty string if you don't want to notify anyone, for example during a test run: notifyUsers: ''.


approvers - Approvers
string.

Specify a comma separated list of users/groups/project teams to act on a manual validation. In absence of input, users with queue build permission will be able to take action.


allowApproversToApproveTheirOwnRuns - Allow approvers to approve their own run
boolean. Default value: false.

If this is true, approver will be able to approve their own run.

Important

The functionality for allowApproversToApproveTheirOwnRuns is still deploying to Azure DevOps, and is currently not enabled.


instructions - Instructions
string.

Specifies the instructions that are shown to the user when resuming or rejecting the manual validation. Based on these instructions, the user will make an informed decision about this manual validation.


onTimeout - On timeout
string. Allowed values: reject, resume. Default value: reject.

Automatically rejects or resumes this manual validation after it is pending for the specified timeout, or 30 days, whichever is earlier.


Task control options

All tasks have control options in addition to their task inputs. For more information, see Control options and common task properties.

Output variables

None.

Remarks

Use this task in a YAML pipeline to pause a run within a stage. This is typically executed to perform various manual steps or actions and then the run is resumed or rejected.

Important

This task is only supported in YAML pipelines and can only be used in an agentless job of a YAML pipeline.

The Manual Validation task allows you to pause a pipeline run within a stage, typically to perform some manual steps or actions, and then continue with the pipeline. For example, the user may need to manually validate certain deployment configurations before the pipeline starts a long running computational intensive job.

The Manual Validation task configuration includes an instructions parameter that is used to provide related information or to specify the manual steps the user executes during the pause. You can configure the task to send email notifications to users and user groups when it is awaiting a review and specify the automatic response (reject or resume) after a configurable timeout occurs.

You can specify the timeout value for the task using the optional timeoutInMinutes parameter, available in the common task properties.

Note

For the task to run completely, the timeoutInMinutes value of the job (default = 60 minutes) containing this task should be higher than the timeoutInMinutes value of the task itself. See default job timeout values.

Tip

You can use variables to specify email addresses in the notifyUsers parameter.

When the Manual Validation task is activated during a pipeline, it displays a message bar with a link that opens the Manual validation dialog, which contains the instructions. After carrying out the manual steps, the administrator or user can choose to resume the run or reject it. Users with Queue builds permission on the pipeline can resume or reject the run.

Examples

  jobs:
  - job: waitForValidation
    displayName: Wait for external validation
    pool: server
    timeoutInMinutes: 4320 # job times out in 3 days
    steps:
    - task: ManualValidation@1
      timeoutInMinutes: 1440 # task times out in 1 day
      inputs:
        notifyUsers: |
          test@test.com,
          example@example.com
        instructions: 'Please validate the build configuration and resume'
        onTimeout: 'resume'

This example uses timeoutInMinutes which is a common task property available in all tasks.

Requirements

Requirement Description
Pipeline types YAML, Classic build
Runs on Server
Demands None
Capabilities This task does not satisfy any demands for subsequent tasks in the job.
Command restrictions Any
Settable variables Any
Agent version All supported agent versions.
Task category Deploy