手动批准Azure Devops管道(YAML)中的阶段

时间:2020-07-10 14:06:13

标签: azure azure-devops azure-pipelines

我有一个阶段,该阶段使用6个部署作业,这些作业可以根据特定条件部署到开发,阶段或生产中。

要部署到生产环境,我想添加手动批准。我知道部署作业可以指定可以在其中添加手动批准的环境,但是我想批准整个阶段,而不是批准每个单独的部署作业。这样,我可以批准一次该阶段,并且可以一次运行所有6个部署作业,而不必批准6次。

这可能吗?该文档说it should be,但没有说如何。此外,在YAML schema for stages中,您似乎无法在阶段内部指定环境。

2 个答案:

答案 0 :(得分:1)

当前,尚无此类内置功能可批准YAML的整个阶段。我们只能针对这些环境Define approvals and checks。还提到了您提到的文档,该文档通常用于控制对生产环境的部署。

但是,已经有suggestion ticket可以请求该功能。您可以投票并添加建议票的评论,以在将来的版本中实现。

答案 1 :(得分:1)

看起来 ManualValidation 任务可以帮助您。使用 dependsOn 将允许所有其他作业在最终批准之前完成。

示例:

jobs:  
  - job: waitForValidation
    dependsOn: 'previousJobName'
    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
      inputs:
        notifyUsers: |
          test@test.com
          example@example.com
        instructions: 'Please validate the build configuration and resume'
        onTimeout: 'reject'