Azure DevOps GitFlow模式下,如何用留存流水线构建master分支R1.0标签版本?
问题:Azure DevOps经典流水线如何基于Git标签构建已发布的R1.0版本?
我目前在Azure DevOps Services中采用GitFlow模式管理项目,现有一条基于经典编辑器的流水线用于构建Dev和Release/R1.0分支。现在我创建了一条名为MyProduct-R1.0的经典流水线,需求是:在Release/R1.0分支合并到master分支完成发布后,构建master分支的Release R1.0版本。按照GitFlow规范,发布完成后我会给master分支打R1.0标签,并删除Release/R1.0分支,但会保留MyProduct-R1.0流水线。
我的核心困惑在于流水线的分支配置:
- 不能直接指定master分支,因为后续master会持续演进,构建的会是最新代码而非R1.0标签版本
- 也不能指定Release/R1.0分支,因为该分支发布后会被删除
请问该如何配置分支规则,才能在master分支后续更新后,依然能用MyProduct-R1.0流水线构建master分支上的R1.0标签版本?
解决方案:针对Git标签配置流水线触发与源设置
在Azure DevOps经典编辑器里,你完全可以绕开分支的限制,直接把流水线和Git标签绑定,具体可以这么操作:
1. 手动构建指定标签:修改源代码源为特定标签
如果只是需要偶尔手动触发构建R1.0版本,直接调整流水线的源代码设置就行:
- 打开
MyProduct-R1.0流水线的编辑界面 - 找到获取源代码这一步,把原来选的"分支"改成标签
- 在标签输入框里直接填
R1.0,保存配置就好 - 之后不管master分支怎么更新,每次手动跑这条流水线,都会精准拉取
R1.0标签对应的代码版本,完全不受后续代码变更的影响
2. 自动触发补丁版本:配置标签触发规则
如果后续你需要给R1.0打补丁(比如R1.0.1),想让流水线自动触发构建,可以加个标签触发规则:
- 进入流水线的触发器选项卡
- 打开**持续集成(CI)**触发器,勾选"启用持续集成"
- 在分支过滤那里点"添加",选择标签类型
- 设置匹配模式为
R1.0*,这样所有R1.0系列的标签(比如R1.0、R1.0.1)推送到仓库时,都会自动触发这条流水线构建
灵活进阶:用变量实现多场景构建
要是你想让这条流水线既能构建R1.0标签,也能临时切换到其他分支/标签,可以用变量来配置:
- 先定义一个流水线变量,比如叫
BuildSource,默认值设为refs/tags/R1.0 - 在获取源代码步骤里,选择"特定分支、标签或提交",输入
$(BuildSource) - 之后触发流水线的时候,你可以手动修改这个变量的值,比如换成
refs/heads/master或者refs/tags/R1.0.1,灵活切换构建目标
内容的提问来源于stack exchange,提问作者Chubsdad
相关产品推荐
相关产品推荐

