YAML CD流水线触发后部署默认分支制品,如何部署services-release分支CI2生成的制品
CD流水线匹配对应services-release/*分支CI2制品的配置修改方案
- 调整CD流水线绑定的CI2制品源的默认版本规则,不要选择「默认分支的最新版本」,改为选择「触发本次流水线运行的对应制品版本」,这一步是核心,多数异常场景都是默认配置优先拉取了指定的默认分支制品,忽略了触发事件关联的对应版本制品。
- 修正CD流水线的触发规则绑定逻辑:不要仅配置CD自身代码仓库的分支过滤器,需要在CI2制品源的触发配置中添加
services-release/*分支的包含规则,同时开启「制品生成后自动触发CD」的开关,确保CD的触发源是CI2的制品构建事件,而非CD自身代码库的提交事件。 - 修改CD的YAML配置中制品拉取的逻辑,不要硬编码拉取develop分支的CI2制品,改为使用平台内置的动态变量引用对应触发事件的制品。以Azure DevOps YAML配置为例,参考配置如下:
resources: pipelines: # 定义CI2为制品源,别名可自定义 - pipeline: CI2_Artifacts source: 你的CI2流水线完整名称 trigger: branches: include: - services-release/*
后续在CD的部署步骤中拉取制品时,直接引用CI2_Artifacts别名对应的制品即可,系统会自动匹配触发本次运行的CI2对应分支的构建制品。
- 确认「default branch for manual and scheduled builds」配置的适用范围:该配置仅对手动触发、定时触发的CD流水线生效,不会影响CI2制品事件触发的自动运行,只要完成前面三项配置,自动触发的CD会自动覆盖该默认配置的分支取值。
内容的提问来源于stack exchange,提问作者Ekaterina
相关产品推荐
相关产品推荐

