如何停止矩阵建立在第一个错误上

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 上报告功能请求。这将使您能够与合适的工程团队进行互动,并使工程团队更方便地收集和分类您的建议。