部署工作的检查(批准)会阻塞整个阶段

时间:2019-08-02 07:26:52

标签: azure-devops yaml azure-pipelines azure-pipelines-release-pipeline

我的管道具有以下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阶段的发布阶段被阻止,即使考虑到“暂存”未启用任何检查(仅prod)。

pipeline

最简单的解决方法是创建不同的阶段,一个用于登台,一个用于生产,但是事实是它与我的预期行为不匹配。我期望作业暂存的部署成功完成,然后作业“生产”等待批准。

您对此有何建议?这是错误吗?

1 个答案:

答案 0 :(得分:1)

  

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

很抱歉给您带来不便。

就此而言,此行为是设计使然。

作为文档状态:

  

多阶段YAML管道中的批准

     

我们将继续改进多阶段YAML管道,现在,您可以将手动批准添加到   这些管道。基础架构所有者可以保护他们的环境   并在任何管道的某个阶段部署到   他们。

此功能是根据阶段而不是环境设计的,因此它会阻塞整个阶段。

经我测试,我可以像您一样重现此问题。但是您的要求是合理的(个人而言),此功能应基于环境设计。

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

enter image description here

希望这会有所帮助。