为何GitHub Workflow无指定文件变更时仍触发?求正确配置
GitHub Workflow 触发规则配置优化
需求说明
需要让GitHub Workflow仅在以下场景触发:
- 推送的提交中修改了指定文件;
- 针对main分支创建PR,且PR创建时包含指定文件变更;
- PR后续推送若无指定文件变更则不触发。
原配置问题
原配置如下:
on: pull_request: branches: - main paths: - myfolder/fileone.json - myfolder/filetwo.json push: branches: - main paths: - myfolder/fileone.json - myfolder/filetwo.json
该配置会在符合条件的PR创建时触发,但后续即使PR推送没有指定文件变更,Workflow仍会被触发,不符合需求。
优化后的配置
on: # 仅在针对main分支创建PR且包含指定文件变更时触发 pull_request: types: - opened branches: - main paths: - myfolder/fileone.json - myfolder/filetwo.json # 仅在推送main分支且提交包含指定文件变更时触发(含PR合并到main的情况) push: branches: - main paths: - myfolder/fileone.json - myfolder/filetwo.json
配置说明
pull_request事件添加types: [opened]后,Workflow只会在PR首次创建时检查路径变更,后续向该PR推送代码时不会触发,精准匹配需求。push事件保持原逻辑,确保只有当main分支收到包含指定文件变更的推送时才触发。由于PR合并到main会生成push事件,因此合并操作也会触发Workflow,符合场景要求。
内容的提问来源于stack exchange,提问作者red888
相关产品推荐
相关产品推荐

