如何停止矩阵建立在第一个错误上
How to stop matrix builds on the first error
我有一个用于发布和调试构建的 CI 管道设置:
trigger:
batch: true
branches:
include:
- "master"
- "main"
- "feature/*"
- "hotfix/*"
strategy:
matrix:
'Release':
buildConfiguration: 'Release'
'Debug':
buildConfiguration: 'Debug'
无论错误如何,两者都是 运行:
我想更改此行为,以便当一个作业失败时,另一个作业也会停止 - 节省我的构建时间。
这可能吗?
我们没有任何 built-in 方法可以在任何矩阵作业失败时轻松自动取消所有 in-progress 作业。
作为解决方法,您可以尝试以下方法:
- 添加脚本任务(例如PowerShell or Bash)作为矩阵作业的最后一步。
- 设置脚本任务 运行s 之前任何任务失败时 (
condition: failed()
).
- 在脚本任务中,将脚本设置为执行 REST API“Builds - Update Build”以取消当前构建。
通过这种方式,当作业中的任何任务失败时,脚本任务将 运行 并执行 REST API 以取消整个构建。
当然,如果你真的想要一个built-in简单的方法可以使用(例如,添加选项jobs.job.strategy.fail-fast
),我推荐您可以在 Developer Community 上报告功能请求。这将使您能够与合适的工程团队进行互动,并使工程团队更方便地收集和分类您的建议。
我有一个用于发布和调试构建的 CI 管道设置:
trigger:
batch: true
branches:
include:
- "master"
- "main"
- "feature/*"
- "hotfix/*"
strategy:
matrix:
'Release':
buildConfiguration: 'Release'
'Debug':
buildConfiguration: 'Debug'
无论错误如何,两者都是 运行:
我想更改此行为,以便当一个作业失败时,另一个作业也会停止 - 节省我的构建时间。
这可能吗?
我们没有任何 built-in 方法可以在任何矩阵作业失败时轻松自动取消所有 in-progress 作业。
作为解决方法,您可以尝试以下方法:
- 添加脚本任务(例如PowerShell or Bash)作为矩阵作业的最后一步。
- 设置脚本任务 运行s 之前任何任务失败时 (
condition: failed()
). - 在脚本任务中,将脚本设置为执行 REST API“Builds - Update Build”以取消当前构建。
通过这种方式,当作业中的任何任务失败时,脚本任务将 运行 并执行 REST API 以取消整个构建。
当然,如果你真的想要一个built-in简单的方法可以使用(例如,添加选项jobs.job.strategy.fail-fast
),我推荐您可以在 Developer Community 上报告功能请求。这将使您能够与合适的工程团队进行互动,并使工程团队更方便地收集和分类您的建议。