Azure DevOps Release Task 故意停止 Release

Azure DevOps Release Task to deliberately stop the Release

我试图找到一个发布任务,我可以将其放置在发布管道阶段的工作流程中以有意停止发布。

我有一个大型供应管道,每个阶段有 50 个任务(和 6 个阶段)。除了少数例外,任务中的阶段是相同的,只是变量不同。

在第 10 个任务之后,如果变量为真,那么我想停止 Release。这不是一个失败的发布(所以我不想将发布标记为失败),这只是意味着在第 10 个任务之后没有什么可做的了。

我看到很多信息说在现有任务上创建一个条件,以便该任务仅在条件计算为真时 运行s。

这份 Microsoft 文档向我建议,在任务 11 到 50 中,我需要一个自定义条件,即“只有 运行 if variable = true”。我可能误解了这种行为,可能还有另一种方法可以达到相同的结果。

为什么我需要任务而不是条件?

条件似乎迎合了先决条件,而不是 post 条件场景。如果它必须是一个条件,我宁愿说,“在第 10 个任务成功完成并且变量 = XYZ 后成功停止发布”使用 post-condition如:

eq(变量['RunTasks11To50'],'True')

为一个先决条件(从第 11 个任务开始)执行 40 次是一件很痛苦的事情,而且它也很容易出错,因为如果不深入任务就没有明显地设置条件(与灰色的禁用任务不同出)。

我担心的是我需要写一个条件 eq(variables['RunTasks11To50'], 'True') 乘以 40 个任务分为 6 个阶段(6 个环境)。

我考虑了什么?

感谢任何建议。

很遗憾,没有“门”任务来停止发布。

Alternatively maybe if there was a "Gate" task that allowed the release to pause and require a confirmation to continue that might work too.

我们可以设置Post-部署条件或预部署条件来添加审批人。

我们建议您在发布管道中的任务 11 至 50 上使用条件,并在 Stage2 至 Stage6 上使用条件以跳过阶段任务。

此外,我们可以添加任务权限 shell tp 调用 REST API 来取消发布。