Azure Pipelines未触发排查:指定文件变更后流水线不执行
问题分析与解决
1. YAML语法缩进错误
你的触发器配置存在缩进错误:paths下的include和exclude没有作为paths的子属性缩进,导致路径匹配规则完全不生效。正确的缩进格式应该是:
trigger: batch: true branches: include: - prod paths: include: - src/deploy/* - ref/static/* - azure-pipelines-prod.yml exclude: - '*'
2. 路径匹配逻辑错误
即使修复了缩进,exclude: '*'的配置也会导致所有变更被排除——Azure Pipelines的路径规则是:文件必须匹配include列表,且不匹配exclude列表才会触发流水线。exclude: '*'会匹配所有文件,直接覆盖include的规则,哪怕是你指定的目标文件也会被排除。
正确的配置写法
如果你想实现“仅当指定文件变更时触发”,不需要写exclude: '*',只保留include列表即可。当paths仅配置include时,只有匹配这些路径的文件变更才会触发流水线:
trigger: batch: true branches: include: - prod paths: include: - src/deploy/* - ref/static/* - azure-pipelines-prod.yml
如果确实需要排除某些额外文件,再针对性添加exclude规则,比如排除文档目录:
trigger: batch: true branches: include: - prod paths: include: - src/deploy/* - ref/static/* - azure-pipelines-prod.yml exclude: - docs/*
内容的提问来源于stack exchange,提问作者JohnWick
相关产品推荐
相关产品推荐

