You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure DevOps Pipeline矩阵任务异常后恢复任务未触发问题排查

Azure DevOps Pipeline 错误控制任务未触发问题排查

问题说明

配置了包含三个任务的Azure DevOps Pipeline:矩阵任务GetFiles、清理任务Cleanup、恢复任务ErrorControl。需求为:当GetFiles或Cleanup任务失败或被取消时,ErrorControl任务必须运行。但出现异常场景:GetFiles的一个矩阵子任务成功,另一个因代理重启(代理连接丢失)异常,Cleanup任务因always()条件正常执行,但ErrorControl任务未触发——因为当前整体状态既不满足failed()也不满足canceled()。

当前配置代码

- job: GetFiles
  strategy:
    matrix:
      AF0:
        MacId: 0
      AF1:
        MacId: 1
  steps:

- job: Cleanup
  dependsOn: GetFiles
  condition: always()
  steps:
  - powershell: |
    displayName: "Dismount"
    errorActionPreference: continue
    failOnStderr: false
    ignoreLASTEXITCODE: false

- job: ErrorControl
  dependsOn:
  - GetFiles
  - Cleanup
  condition: or(failed(), canceled())
  steps:

问题根因

  1. 矩阵任务状态特性:当GetFiles的矩阵子任务部分成功、部分失败时,该任务的整体状态为partiallySucceeded(部分成功),而非failed或canceled。
  2. 条件判断逻辑缺陷:当前ErrorControl的condition仅判断了failed()和canceled(),未覆盖partiallySucceeded的场景;同时,failed()是判断所有依赖任务的组合状态——由于Cleanup任务成功执行,组合状态不会触发failed()。

修正方案

调整ErrorControl的条件判断,明确检查GetFiles是否处于失败、取消或部分成功状态,同时检查Cleanup是否失败或取消。修正后的条件如下:

condition: or(failed('GetFiles'), canceled('GetFiles'), partiallySucceeded('GetFiles'), failed('Cleanup'), canceled('Cleanup'))

完整修正后代码

- job: GetFiles
  strategy:
    matrix:
      AF0:
        MacId: 0
      AF1:
        MacId: 1
  steps:

- job: Cleanup
  dependsOn: GetFiles
  condition: always()
  steps:
  - powershell: |
    displayName: "Dismount"
    errorActionPreference: continue
    failOnStderr: false
    ignoreLASTEXITCODE: false

- job: ErrorControl
  dependsOn:
  - GetFiles
  - Cleanup
  condition: or(failed('GetFiles'), canceled('GetFiles'), partiallySucceeded('GetFiles'), failed('Cleanup'), canceled('Cleanup'))
  steps:

逻辑说明

  • failed('GetFiles'):捕获GetFiles任务整体失败的场景
  • canceled('GetFiles'):捕获GetFiles任务被取消的场景
  • partiallySucceeded('GetFiles'):捕获GetFiles矩阵子任务部分失败的场景
  • failed('Cleanup')/canceled('Cleanup'):捕获清理任务自身失败或被取消的场景

内容的提问来源于stack exchange,提问作者B.McKee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 21:51:01