首页 > 解决方案 > Azure DevOps 管道中的条件 ManualValidation 步骤

问题描述

使用 Azure DevOpsManualValidation任务,作业是否可以根据管道中先前定义的变量有条件地运行?

该作业接受一个enabled参数,但似乎必须将其硬编码为真或假。

- stage: Approve_${{ targetPath.stageName }}_${{ parameters.planEnvironment }}
  jobs:
    - job: waitForValidation
      displayName: Wait for external validation
      pool: server
      timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
      steps:
        - task: ManualValidation@0
          environment: development ## environment not accepted here
          #enabled: $[destroy] ## Unexpected value '$[destroy]'",
          #enabled: $(destroy) ## fails - syntax error (does not like this to be a var)
          # manually setting true/false works
          #enabled: true
          #enabled: false
          inputs:
            notifyUsers: |
              alert@test.com
            instructions: 'Please validate the build configuration and resume'
            onTimeout: 'reject'

标签: azure-devopsazure-pipelines

解决方案


enabledcontrol 选项为booleantype,表示是否运行此步骤,默认为'true'。如果您想使用enabled控制选项来调节 ManualValidation 步骤,您可以检查以下语法:

variables:
- name: destroy
  value: true


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

否则可以在@Shayki Abramczyk 提到的步骤下指定条件。


推荐阅读