Azure DevOps YAML Pipeline带通配符的路径过滤失效问题
解决Azure DevOps流水线路径过滤通配符失效问题
问题定位
你当前的路径过滤规则中,通配符写法不符合Azure DevOps的路径匹配逻辑,导致针对DataPipeline结尾文件夹和Lakehouse相关路径的过滤失效。另外需注意:若流水线通过PR合并到main触发,要确保路径规则覆盖对应触发场景。
修正后的路径过滤规则
结合你的目录结构和需求,调整通配符写法如下:
trigger: branches: include: - main paths: exclude: - Pipelines/* - Contract-Files/* - readme.md - */masterpipeline.DataPipeline/* # 匹配任意层级下masterpipeline.DataPipeline文件夹内所有内容 - DQ*/** # 匹配所有以DQ开头的文件夹及其子目录 - */Lakehouse.Lakehouse/* # 匹配任意层级下Lakehouse.Lakehouse文件夹内所有内容
关键调整说明
- 原
*masterpipeline.DataPipeline/*会匹配以masterpipeline.DataPipeline开头的路径,改为*/masterpipeline.DataPipeline/*才能匹配任意父目录下的目标文件夹。 - 原
DQ*/*仅匹配DQ开头文件夹下的直接文件,改为DQ*/**可覆盖该文件夹下所有子目录和文件。 - 原
*Lakehouse.Lakehouse/*同理,调整为*/Lakehouse.Lakehouse/*确保匹配任意层级下的目标文件夹。
额外注意事项
- PR触发场景适配:如果流水线同时由PR触发(而非仅合并后的推送),需添加
pr触发器并配置相同路径规则:
pr: branches: include: - main paths: exclude: - Pipelines/* - Contract-Files/* - readme.md - */masterpipeline.DataPipeline/* - DQ*/** - */Lakehouse.Lakehouse/*
- 提交信息跳过CI的正确写法:若要通过提交信息跳过流水线,需在提交信息中包含
[skip ci]、[ci skip]、skip-checks:true或[skip azurepipelines]这类完整关键词,大小写不敏感。 - 规则验证:可通过Azure DevOps流水线编辑器预览功能,或手动推送仅修改目标过滤路径文件的测试提交,验证规则是否生效。
内容的提问来源于stack exchange,提问作者Dhruv Marwha
相关产品推荐
相关产品推荐

