我有一个大约20个阶段的Release管道。根据我们正在执行的发行类型,我们决定运行这些阶段的某些子集。
运行每个阶段都很昂贵,除非绝对必要,否则我们不希望运行它。
在发布发布时是否有直接的方法来禁用某些阶段,以便我们仅执行发布中绝对必要的阶段?
如果没有,那么实现此行为的最佳编程方式是什么?
答案 0 :(得分:1)
当前,没有根据条件禁用阶段的选项。我建议您可以提交feedback for this feature
丹尼尔(Daniel)建议,您应该为用例创建单独的发布管道
另一种选择是,您可以在任务级别中定义要跳过的阶段的条件。
例如,
您有3个阶段:
每个阶段都有2个任务:
让我们说说您是否不想在质量检查中进行部署。
然后,您可以为质量检查中的2个任务定义自定义条件,以跳过执行。
您可以参考my answer来处理自定义条件。
答案 1 :(得分:0)
当通过 ADO 网络界面启动管道时,ADO 现在允许您指定要运行的阶段。
如果您更喜欢以编程方式选择阶段,则可以使用条件。 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')