部署作业的检查(批准)阻碍了整个阶段

Checks (approvals) for a deployment job are blocking the entire stage

我的管道有以下 YML 文件:

trigger: none

stages:
# Other stages here...

- stage: Release
  jobs:
  - deployment: Staging
    environment: staging    
    strategy:
      runOnce:
        deploy:
          steps:
          - download: none
          - task: DownloadBuildArtifacts@0
            # ...
          - task: AzureRmWebAppDeployment@4
            displayName: Deploy in staging
            # ... 

  - deployment: Production
    environment: prod    
    dependsOn: Staging
    strategy:
      runOnce:
        deploy:
          steps:
          - download: none
          - task: AzureAppServiceManage@0
            displayName: Swap stg-prod slots
            # ...

基于此,为了提供更多上下文,我的想法是分为两个阶段:第一个是构建我的应用程序,第二个是在暂存 (QA) 中发布,然后是生产。

不过,环境 "prod" 有检查(或批准,随便你怎么称呼)。

我不确定我是否遇到了错误,但发生的事情是当第 1 阶段完成(构建阶段)时,第 2 阶段的发布阶段被阻止并等待批准甚至考虑"staging" 没有启用任何检查(仅产品)。

最简单的解决方法是创建不同的阶段,一个用于暂存阶段,一个用于生产阶段,但问题是它与我的预期行为不符。我期待作业暂存的部署成功完成,然后作业 "production" 等待批准。

对此你有什么建议吗?这是一个错误吗?

Checks (approvals) for a deployment job are blocking the entire stage

对于给您带来的不便,我们深表歉意。

就个人而言,此行为是此时设计的。

如文档所述:

Approvals in multi-stage YAML pipelines

We continue to improve multi-stage YAML pipelines, we now let you add manual approvals to these pipelines. Infrastructure owners can protect their environments and seek manual approvals before a stage in any pipeline deploys to them.

此功能是基于舞台而不是环境设计的,所以它会阻塞整个舞台。

根据我的测试,我可以像您一样重现这个问题。但是你的要求是合理的(个人),这个特性应该是根据环境.

设计的

您可以在我们的 UserVoice 网站 (https://developercommunity.visualstudio.com/content/idea/post.html?space=21 ) 上添加对此功能的请求,该网站是我们提供产品建议的主要论坛。感谢您帮助我们构建更好的 Azure DevOps。

希望对您有所帮助。