如何在Azure DevOps中基于PR源分支触发构建流水线
Azure DevOps 经典流水线PR触发源分支构建操作指引
一、Develop到Master的PR创建时自动触发源分支构建配置
经典流水线的PR验证触发器原生支持这个场景,触发时默认拉取PR源分支的代码(即你场景里的Develop分支,是源分支和目标分支的预合并快照,完全满足合并前验证的要求),按以下步骤配置即可:
- 进入目标构建流水线的编辑页面,点击顶部菜单栏的「触发器」按钮
- 左侧导航栏选择「Pull request 验证」,将功能开关切换为启用状态
- 在「目标分支」筛选规则中,仅保留
Master分支,删除其余不需要的分支规则——这个配置的含义是:只有当PR的合入目标是Master时,才会触发当前流水线 - 如果你需要严格限定只有源分支为Develop的PR才触发,在「分支筛选」的包含规则中添加
Develop,排除规则留空即可 - 按需勾选触发时机:
- 勾选「创建新PR时自动触发」:PR刚创建就自动启动构建
- 建议同步勾选「每次向PR推送新提交时触发」:PR内有代码更新时自动重跑构建,保证验证结果始终和最新代码一致
- 「PR添加新评论时触发」一般不需要勾选,按需选择即可
- 配置完成后点击保存,后续所有从Develop提往Master的PR,创建时就会自动基于Develop分支的代码启动构建。
二、基于标签触发源分支构建的配置方法
结论先行:完全支持,分PR标签触发、Git标签触发两种常见场景,配置方式如下
场景1:给PR打指定标签才触发构建
如果你不想所有Develop→Master的PR都自动跑构建,只有给PR添加指定标签后才启动构建,配置非常简单:
- 回到「Pull request 验证」的配置页
- 找到「要求PR包含以下标签才可自动触发」的输入框,填入你自定义的触发标签,比如
run-build-validation - 保存配置即可。后续符合分支规则的PR如果没打对应标签,不会自动触发构建;打上对应标签后,会立刻拉取源分支代码启动构建。
场景2:给Develop分支打Git标签时触发构建
如果你说的标签是Git提交级别的tag,需要打标签时触发对应分支的构建,按以下步骤配置CI触发器即可:
- 在触发器页面左侧选择「持续集成(CI)」,开启CI触发开关
- 在分支筛选的包含规则中,同时添加
Develop和refs/tags/*:前者保证Develop分支直接提交代码时可触发,后者保证打标签时可触发 - 如果你需要限定只有特定格式的标签才触发,比如只认版本号格式的标签,可以把标签规则修改为
refs/tags/v*,就只会匹配v1.0.0这类v开头的标签 - 注意:该配置下,如果标签是打在Develop分支的提交上,触发构建时流水线拉取的就是Develop分支对应提交的代码,完全符合基于源分支构建的要求。
常见问题排查:如果配置完触发不生效,优先检查两项配置:1. 流水线安全设置中,项目生成服务账号拥有「排队构建」权限;2. 没有勾选「禁用该触发器的隐式触发」选项,否则所有自动触发规则都会失效。
内容的提问来源于stack exchange,提问作者Harish334363
相关产品推荐
相关产品推荐

