【问题标题】:How to deactivate/Skip stage in release pipeline(non YAML) but its passthrough(continues for next stages)如何停用/跳过发布管道中的阶段(非 YAML)但其传递(继续下一阶段)
【发布时间】:2021-01-06 18:37:26
【问题描述】:

据我了解,在 YAML 管道中,您可以选择“要运行的阶段”,因此基本上允许出于任何原因完全跳过阶段。但是,我在 GUI 发布管道中看不到相同的功能。我只看到“仅限手动”选项 - 在我有 dev > Test > Prod 并且我想跳过测试但保持发布管道结构完整的情况下,“仅限手动”是否可用?对此的最佳做法是什么?到目前为止,我只能看到在 YAML 中构建和发布的选项。

谢谢。

【问题讨论】:

    标签: azure azure-devops azure-pipelines devops


    【解决方案1】:

    如果您使用具有多阶段的 yaml 管道,“运行阶段”功能允许您跳过管道中的几个阶段,如下所述:Skipping stages in a YAML pipeline

    如果您想在经典发布管道中实现此功能,请按照以下步骤操作。

    1. 我的发布管道有 3 个阶段:Dev->Test->Prod,如下所示。

    1. Test范围的Variables部分下设置“RunTest”变量,并启用“在发布时设置 >”选项,然后可以让我们在运行新版本时更改其值。

    1. 然后在Test阶段为Agent job设置自定义条件:eq(variables['RunTest'], 'true'),如下。

    1. 因此,如果我们想在新版本中跳过 Test 阶段,只需将其值更改为 false,如下所示。

    【讨论】:

      【解决方案2】:

      确实有很多方法可以解决这个问题,但我要指出的主要方法是:

      #1 具有多个阶段/触发器的单一发布管道

      您认为手动部署可以在这里使用各个阶段并进行分支是正确的。 (见下面的截图链接)

      Release Pipeline with manual deployment paths

      在这种情况下,只要有新版本,就会部署 DEV,然后您可以手动指定希望其余部署走的路径(直接到 Prod,或从 Test 到 Prod)。

      #2 带有预先批准的发布管道

      这可能比手动部署更简洁,并且能够指定特定用户或组。 (下面的截图链接)

      Release Pipeline with Pre-Approval condition

      #3 基于构建标签执行的单独发布管道

      经过测试,我确认您能够根据构建管道中指定的标记触发不同的版本。我相信你可以对拉取请求做同样的事情

      基于这个标记,它可以通过持续部署过滤过程确定运行哪个发布管道。

      下面的屏幕截图和步骤是完成这项工作所需的步骤:

      1. 创建构建管道,其中包括成功构建所需的任何内容,以及用于指定构建标签名称的管道变量(我的是 ProdOnly_TestThenProd),以及用于设置构建标签的 Az Powershell 任务执行期间的构建。这是内联脚本的代码:Write-Host "##vso[build.addbuildtag]$env:ProdOnly_TestThenProd" 请参阅此 gif 以供参考:Build Pipeline
      2. 创建两个发布管道,一个用于 DEV>PROD,另一个用于 DEV>TEST>PROD。创建后,在构建时启用持续部署并根据您的构建管道分支/标签集添加分支/标签过滤器。参考这个截图:Release Pipelines
      3. 手动运行构建管道,这将允许您在运行时设置管道变量的值,这允许您指定要在一次性情况下运行的发布管道,否则,构建管道可以运行无论当前变量值在持续集成过程中是什么。请参阅此 gif 进行说明:Build Pipeline execution and Continuous Deployment

      我喜欢这个 #3 选项,因为它允许您进行 CI/CD 循环,而且如果您需要运行一次性管道,可能会直接发布到 Prod 或其他阶段,那么它为您提供了执行此操作的灵活性没有大量的手工工作。希望这能回答您的问题。

      【讨论】:

      • 感谢 Trent,我只选择了下面的正确答案,因为它不需要更改管道结构,但是您的回复非常有助于从不同角度查看相同的问题和解决方案,并了解 devops 的可能性
      猜你喜欢
      • 2020-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-18
      • 2023-03-05
      • 1970-01-01
      相关资源
      最近更新 更多