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

Azure DevOps Pipelines 构建取消时如何执行指定任务

Azure DevOps Pipelines 取消时运行指定任务的实现方案

存在可直接落地的配置方式,同时支持手动取消、系统自动取消两种触发场景,核心通过流水线内置条件函数+预定义变量实现,具体操作如下:

实现原理

Azure DevOps 提供了内置条件函数 canceled(),当流水线被用户手动取消、或因超时/策略触发等原因被系统自动取消时,该函数返回布尔值true,可直接用于任务或作业的触发条件配置。

具体配置方式

1. 单任务级配置(同一个作业内触发)

如果需要执行的逻辑较少,可以直接在现有作业下新增专属步骤,给步骤添加condition: canceled()即可:

steps:
# 你的常规构建步骤
- script: echo "执行正常构建逻辑"
  displayName: 常规构建

# 取消时触发的专属步骤
- script: echo "流水线已取消,执行资源清理、状态回滚等操作"
  displayName: 取消触发任务
  condition: canceled()
  # 可选配置:避免该任务自身报错影响流水线最终状态标记
  continueOnError: true

2. 作业级配置(独立作业触发)

如果取消后需要执行的逻辑较多,可以单独拆分为独立作业,配置依赖主作业+取消触发条件即可:

jobs:
- job: MainBuild
  steps:
  - script: echo "执行主构建流程"
    displayName: 主构建作业

- job: CancelHandler
  # 依赖主构建作业,确保主作业被取消后才触发当前作业
  dependsOn: MainBuild
  condition: canceled()
  steps:
  - script: echo "执行全局清理、通知推送等操作"
    displayName: 取消触发专属作业

补充说明

  • 如果你需要在流水线无论成功、失败、取消的所有场景下都执行指定任务,可以将条件替换为always()
  • 如果你需要在失败+取消的场景下都触发任务,可以将条件替换为not(succeeded())

内容的提问来源于stack exchange,提问作者nunolima41

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 08:45:04