我的管道具有以下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)。
最简单的解决方法是创建不同的阶段,一个用于登台,一个用于生产,但是事实是它与我的预期行为不匹配。我期望作业暂存的部署成功完成,然后作业“生产”等待批准。
您对此有何建议?这是错误吗?
答案 0 :(得分:1)
对部署作业的检查(批准)阻塞了整个阶段
很抱歉给您带来不便。
就此而言,此行为是设计使然。
作为文档状态:
多阶段YAML管道中的批准
我们将继续改进多阶段YAML管道,现在,您可以将手动批准添加到 这些管道。基础架构所有者可以保护他们的环境 并在任何管道的某个阶段部署到 他们。
此功能是根据阶段而不是环境设计的,因此它会阻塞整个阶段。
经我测试,我可以像您一样重现此问题。但是您的要求是合理的(个人而言),此功能应基于环境设计。
您可以在我们的UserVoice网站(https://developercommunity.visualstudio.com/content/idea/post.html?space=21)上添加对此功能的请求,这是我们提供产品建议的主要论坛。感谢您帮助我们构建更好的Azure DevOps。
希望这会有所帮助。