YAML流水线如何配置仅main分支特定文件夹变更时触发?
问题原因
- 分支与路径过滤规则为AND关系,并非OR,只有同时满足「提交分支命中分支包含规则」+「变更路径命中路径包含规则」才会触发流水线,你的问题来自配置本身的错误。
- 第一个错误是YAML缩进不符合规范:你当前配置中
branches和paths字段的缩进不足,会被识别为和trigger平级的独立字段,导致trigger配置中实际没有生效的路径过滤规则,相当于仅配置了main分支触发,因此main分支任意变更都会触发流水线。 - 第二个错误是路径通配符使用不当:
FPH.IaC/IAC/*仅匹配该目录下的直接子文件,不会匹配子目录中的文件,如果你需要匹配该目录下所有层级的文件,需要改用**通配符。
正确配置示例
trigger: branches: include: - main paths: include: - FPH.IaC/IAC/**
补充验证点
如果调整缩进后仍然存在问题,可以检查以下两项:
- 确认路径拼写完全和仓库根目录下的路径一致,路径匹配大小写敏感
- 确认你没有在Azure DevOps项目的流水线页面单独配置触发器,页面配置的优先级高于YAML配置,会覆盖YAML中的trigger规则
内容的提问来源于stack exchange,提问作者daxu
相关产品推荐
相关产品推荐

