DevOps-禁用发布管道中的阶段

时间:2019-01-09 03:02:48

标签: azure azure-devops devops

我有一个大约20个阶段的Release管道。根据我们正在执行的发行类型,我们决定运行这些阶段的某些子集。

运行每个阶段都很昂贵,除非绝对必要,否则我们不希望运行它。

在发布发布时是否有直接的方法来禁用某些阶段,以便我们仅执行发布中绝对必要的阶段?

如果没有,那么实现此行为的最佳编程方式是什么?

2 个答案:

答案 0 :(得分:1)

当前,没有根据条件禁用阶段的选项。我建议您可以提交feedback for this feature

丹尼尔(Daniel)建议,您应该为用例创建单独的发布管道

另一种选择是,您可以在任务级别中定义要跳过的阶段的条件。

例如,

您有3个阶段:

  • DEV
  • 质量检查
  • PROD

每个阶段都有2个任务:

  • 任务1
  • 任务2

让我们说说您是否不想在质量检查中进行部署。

然后,您可以为质量检查中的2个任务定义自定义条件,以跳过执行。

您可以参考my answer来处理自定义条件。

答案 1 :(得分:0)

当通过 ADO 网络界面启动管道时,ADO 现在允许您指定要运行的阶段。 ADO screenshot: select stages to run

如果您更喜欢以编程方式选择阶段,则可以使用条件。 https://docs.microsoft.com/en-us/azure/devops/pipelines/process/conditions?view=azure-devops&tabs=yaml

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')