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 次是一件很痛苦的事情,而且它也很容易出错,因为如果不深入任务就没有明显地设置条件(与灰色的禁用任务不同出)。
- 如果有允许发布合法停止的“停止发布”任务,那么我就不需要在任务 11 到 50 上添加条件。
- 或者,如果有允许发布暂停并需要确认才能继续的“门”任务,这也可能有效。
我担心的是我需要写一个条件 eq(variables['RunTasks11To50'], 'True') 乘以 40 个任务分为 6 个阶段(6 个环境)。
我考虑了什么?
- 编写一个 Powershell 任务来调用 DevOps Rest API 取消我自己的 Release
- 以某种方式在 运行 时禁用任务 11 到 50(再次可能需要 Powershell Task DevOps Rest API 调用)
- 想知道我是否正在寻找一个复杂的答案,而我错过了一些明显而简单的东西。
感谢任何建议。
很遗憾,没有“门”任务来停止发布。
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 来取消发布。
我试图找到一个发布任务,我可以将其放置在发布管道阶段的工作流程中以有意停止发布。
我有一个大型供应管道,每个阶段有 50 个任务(和 6 个阶段)。除了少数例外,任务中的阶段是相同的,只是变量不同。
在第 10 个任务之后,如果变量为真,那么我想停止 Release。这不是一个失败的发布(所以我不想将发布标记为失败),这只是意味着在第 10 个任务之后没有什么可做的了。
我看到很多信息说在现有任务上创建一个条件,以便该任务仅在条件计算为真时 运行s。
这份 Microsoft 文档向我建议,在任务 11 到 50 中,我需要一个自定义条件,即“只有 运行 if variable = true”。我可能误解了这种行为,可能还有另一种方法可以达到相同的结果。
为什么我需要任务而不是条件?
条件似乎迎合了先决条件,而不是 post 条件场景。如果它必须是一个条件,我宁愿说,“在第 10 个任务成功完成并且变量 = XYZ 后成功停止发布”使用 post-condition如:
eq(变量['RunTasks11To50'],'True')
为一个先决条件(从第 11 个任务开始)执行 40 次是一件很痛苦的事情,而且它也很容易出错,因为如果不深入任务就没有明显地设置条件(与灰色的禁用任务不同出)。
- 如果有允许发布合法停止的“停止发布”任务,那么我就不需要在任务 11 到 50 上添加条件。
- 或者,如果有允许发布暂停并需要确认才能继续的“门”任务,这也可能有效。
我担心的是我需要写一个条件 eq(variables['RunTasks11To50'], 'True') 乘以 40 个任务分为 6 个阶段(6 个环境)。
我考虑了什么?
- 编写一个 Powershell 任务来调用 DevOps Rest API 取消我自己的 Release
- 以某种方式在 运行 时禁用任务 11 到 50(再次可能需要 Powershell Task DevOps Rest API 调用)
- 想知道我是否正在寻找一个复杂的答案,而我错过了一些明显而简单的东西。
感谢任何建议。
很遗憾,没有“门”任务来停止发布。
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 来取消发布。