【问题标题】:Cancel build/deployment to environments automatically using yaml (because manual only trigger pre-deployment condition is not supported)使用 yaml 自动取消对环境的构建/部署(因为不支持手动仅触发预部署条件)
【发布时间】:2020-07-19 21:31:47
【问题描述】:

我有一个使用 yaml 创建的构建/发布管道,如上图所示。首先是“Build_Service”。 “Deploy_service_ar”、“Deploy_service_gh”、“Deploy_service_pd”、“Deploy_service_lp”、“Deploy_service_st”取决于“Build_Service”。我已经为这些环境中的每一个添加了批准/检查。对于这个特定的构建/发布,我只想部署到它已经完成的“pd”。尽管“pd”部署已完成,但它仍在等待批准/检查,以便部署到其他环境。由于 yaml 不支持“仅手动触发”预部署条件,是否有替代方法可以在完成部署到 pd 后自动取消构建/取消部署到其他环境?例如,在等待批准检查约 10 小时后,自动取消构建/取消部署到仍在等待批准的剩余环境?请告诉我。

【问题讨论】:

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


    【解决方案1】:

    您可以指定每个阶段运行的条件。默认情况下,如果一个阶段不依赖于任何其他阶段,或者它所依赖的所有阶段都已完成并成功,则它会运行。您可以通过强制某个阶段运行(即使前一个阶段失败)或指定自定义条件来自定义此行为。

    stages:
    - stage: A
    
    # stage B runs if A fails
    - stage: B
      condition: failed()
    
    # stage C runs if B succeeds
    - stage: C
      dependsOn:
      - A
      - B
      condition: succeeded('B')
    

    更多详情请参考此文档--Conditions

    另一种方法是使用变量和 powershell 脚本来控制您的管道。供您参考:

    【讨论】:

      猜你喜欢
      • 2020-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-15
      • 1970-01-01
      • 2016-05-03
      • 1970-01-01
      相关资源
      最近更新 更多