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

Azure DevOps单代理下禁用同流水线并发构建的方法

解决单代理Azure DevOps流水线构建交替执行问题

核心解决方案:使用互斥锁(Mutex Lock)实现构建级独占

要让整个构建完成后再执行下一个,你可以通过定义全局互斥锁,让每个构建实例在执行期间独占该锁,后续构建需等待锁释放后才能启动。

具体YAML配置

在流水线YAML头部添加互斥锁资源定义,确保同一时间只有一个构建能持有锁:

resources:
  locks:
  - name: ExclusiveBuildLock
    type: mutex
    lockBehavior: exclusive

trigger:
  # 你的触发配置

stages:
- stage: BuildStage1
  jobs:
  - job: BuildJob1
    steps:
    - script: echo "执行Stage1作业"
- stage: BuildStage2
  jobs:
  - job: BuildJob2
    steps:
    - script: echo "执行Stage2作业"
# 其他阶段配置...

方案说明

  • 第一个构建触发时会立即获取ExclusiveBuildLock锁,直到所有阶段、作业执行完毕才释放锁。
  • 后续触发的构建会进入排队状态,等前一个构建释放锁后再完整执行自身所有阶段,彻底避免阶段交替执行导致的代码检出冲突。

替代方案:限制代理池并行作业数(不推荐)

若不想使用锁,可将代理池的最大并行作业数设为1,但此方式仅能保证同一时间只有一个作业运行,仍可能出现不同构建的阶段交替(比如构建1的Stage1完成后,构建2的Stage1会抢占代理),无法实现"整个构建完成后再执行下一个"的核心需求,仅作为临时应急方案。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 21:13:11