You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 02:25:44