GitHub Actions路径过滤失效:如何排除指定文件触发工作流?
解决GitHub Actions路径过滤触发问题
你的问题出在路径过滤的逻辑理解上:你之前配置的paths: ['**', '!**/file-name.md']实现的是只要存在非file-name.md的变更文件,就触发工作流——也就是说,如果推送时同时修改了该文件和其他文件,工作流依然会触发,这和你想要的“只要该文件有变更就不触发”的需求不符。
正确的配置应该使用paths-ignore,它的逻辑是只要变更文件中包含匹配模式的文件,工作流就不会触发,正好满足你“仅当file-name.md无变更时触发工作流”的要求:
name: 'Try path filter' on: workflow_dispatch: push: branches: - main paths-ignore: - '**/file-name.md'
这个配置的运行逻辑:
- 当main分支收到推送时,若变更内容中不包含任何路径下的
file-name.md(无论根目录还是子目录),工作流正常触发; - 若
file-name.md有任何变更(单独变更或和其他文件一起变更),工作流会直接跳过,不会触发。
内容的提问来源于stack exchange,提问作者ege
相关产品推荐
相关产品推荐

