GitHub Workflow同事件多类型触发语法问题求助
解决GitHub Workflow中pull_request事件多条件触发的重复键问题
你遇到的「duplicated mapping key」错误是因为YAML不允许同一个父键下出现重复的子键,连续写两个pull_request条目违反了YAML语法规则。
要实现你需要的触发逻辑,正确的做法是把pull_request定义为数组形式,每个数组元素对应一组独立的触发规则:
on: # 保留你的push事件配置 push: # ... 你的push配置内容 pull_request: - types: [opened, reopened] branches: - main - develop - types: [synchronize] branches: - main - develop paths: ['**.h', '**.cpp', '**.hpp', '**.yaml', '**CMakeLists.txt', '**Makefile', '**.spec', '**.py', '**Dockerfile', '**conanfile.txt']
这个配置的作用:
- 当PR首次打开或重新打开时,无论变更了什么文件,只要目标分支是main或develop,就会触发工作流
- 当PR同步(比如向分支推送新提交)时,只有变更了
paths里指定的文件类型,且目标分支是main或develop,才会触发工作流
另外要注意,paths的匹配基于Git diff识别的变更文件,若需要调整监控的文件类型,直接修改数组里的路径条目即可。
内容的提问来源于stack exchange,提问作者ventsyv
相关产品推荐
相关产品推荐

