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

GitHub Push路径与标签过滤器触发异常问题咨询

GitHub Actions工作流触发问题修复方案

问题根源

Workflow 1 分支推送不触发的原因

Workflow 1的on.push同时配置了paths和tags,GitHub Actions中这两个条件是逻辑与关系——必须同时满足路径匹配且是标签推送才会触发。你推送.github/workflows/esp32_push.yml属于分支推送,不满足tags: '*'的要求,因此工作流不触发。

Workflow 2 分支推送不触发的原因

Workflow 2的paths规则仅匹配tlsr825x开头的工作流文件、actions/telink/**和tlsr825x/**路径,你推送的esp32_push.yml完全不在匹配范围内,所以不会触发。

标签推送时两个工作流都触发的原因

GitHub Actions对标签推送有特殊规则:标签推送会忽略paths和branches过滤器:

  • Workflow 1配置了tags: '*',满足标签触发条件;
  • Workflow 2未限制标签推送,默认会响应所有标签推送。

修复方案

调整Workflow 1(分支+标签推送都触发)

如果希望分支推送(匹配指定路径)和标签推送(任意标签)都能触发,需要将paths和tags拆分为独立的push规则(逻辑或关系):

# In workflow 1
on:
  push:
    # 分支推送:匹配指定路径时触发
    paths:
      - '.github/workflows/esp32*'
      - 'actions/espressif/**'
      - 'esp32/**'
  push:
    # 标签推送:任意标签都触发
    tags:
      - '*'

或者用更简洁的数组写法:

# In workflow 1
on:
  push:
    - paths:
        - '.github/workflows/esp32*'
        - 'actions/espressif/**'
        - 'esp32/**'
    - tags:
        - '*'

调整Workflow 2(按需配置)

  • 如果是路径规则写错(原本想匹配esp32相关内容),修改paths即可:
# In workflow 2
on:
  push:
    paths:
      - '.github/workflows/esp32*'
      - 'actions/espressif/**'
      - 'esp32/**'
  • 如果Workflow 2仅需响应tlsr825x相关分支推送,且不想被标签推送触发,添加tags-ignore规则:
# In workflow 2
on:
  push:
    paths:
      - '.github/workflows/tlsr825x*'
      - 'actions/telink/**'
      - 'tlsr825x/**'
    tags-ignore:
      - '*'

内容的提问来源于stack exchange,提问作者Paul D Smith

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 18:33:26