【问题标题】:Manual approvals for stages in Azure Devops pipelines (YAML)手动批准 Azure Devops 管道 (YAML) 中的阶段
【发布时间】:2020-10-31 07:11:28
【问题描述】:

我有一个阶段,它使用 6 个部署作业,可以根据具体条件部署到开发、登台或生产。

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

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

【问题讨论】:

    标签: azure azure-devops azure-pipelines


    【解决方案1】:

    目前没有这样的内置功能来批准 YAML 中的整个阶段。对于环境,我们只能Define approvals and checks。您提到的文档还表明,这通常用于控制对生产环境的部署。

    但是,已经有 suggestion ticket 请求该功能。您可以投票并添加您的 cmets 以获得建议票,以在未来的版本中实现这一目标。

    【讨论】:

      【解决方案2】:

      看起来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'
      

      【讨论】:

      • 超时后“恢复”会发生什么?这种行为在实践中具体可以接受吗?
      • 我将 onTimeout 更改为拒绝,因为这是一个更合适的结果 - 没有任何进展
      猜你喜欢
      • 2020-08-13
      • 2020-05-15
      • 1970-01-01
      • 2020-10-22
      • 1970-01-01
      • 1970-01-01
      • 2022-09-23
      • 2020-01-13
      • 2020-01-27
      相关资源
      最近更新 更多