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

Azure DevOps中PR触发CI后自动触发CD YAML流水线的实现

解决Azure DevOps中PR触发的CI无法触发CD流水线的问题

问题原因

你当前的CD流水线资源触发器仅监听CI流水线在main和features/*分支上由分支触发器或手动操作触发的运行。而PR触发的CI流水线,其运行关联的分支格式为refs/pull/{PR编号}/merge,且流水线触发原因Build.Reason为PullRequest,不在默认的资源触发器监听范围内,因此不会触发CD。

解决方案

1. 修改CD流水线的资源触发器,添加PR触发监听

更新CD流水线的resources配置,明确添加对PR触发的CI运行的监听规则:

name: Release-$(Date:yyyyMMdd)$(Rev:.r)

trigger: none

resources:
  pipelines:
  - pipeline: myCDpipeline
    source: CI
    trigger:
      branches:
        include: 
          - main
          - features/*
      pullRequest:
        include: '*' # 监听所有PR触发的CI运行

如果仅需要监听目标分支为特定分支的PR触发的CI,可以细化pullRequest配置:

resources:
  pipelines:
  - pipeline: myCDpipeline
    source: CI
    trigger:
      branches:
        include: 
          - main
          - features/*
      pullRequest:
        include:
          - main
          - release/* # 仅监听目标分支为main或release/*的PR触发的CI

2. (可选)明确CI流水线的PR触发规则

如果你的CI流水线的PR触发是通过UI配置的,建议在YAML中补充PR触发规则,避免配置冲突:

trigger:
  branches:
    include:
      - main
      - release/*
    exclude:
      - features/*

# 添加PR触发配置
pr:
  branches:
    include:
      - main
      - release/*
    exclude:
      - features/*

pool:
  vmImage: 'windows-latest'

验证

修改配置后,提交PR触发CI流水线,当CI成功完成后,CD流水线会自动触发运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 21:33:22