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

GitHub特定分支删除时Actions Workflow未触发的问题排查

问题原因与解决方案

核心问题

你遇到的分支删除事件不触发的原因是:GitHub Actions的on.push.branches过滤规则仅对当前存在的分支生效。当执行分支删除操作时,目标分支已不存在,无法匹配你配置的"ReleaseCandidates/**"或"main"分支规则,因此Workflow根本不会启动。

解决方案

将分支匹配逻辑从on.push的分支过滤迁移到Job的if条件中,这样所有push事件(包括分支删除)都会先触发Workflow,再通过条件判断是否执行后续步骤。修改后的配置如下:

name: Manage Branch
on:
  push:
    # 移除此处的branches过滤,允许所有push事件触发Workflow
  workflow_dispatch:
permissions:
  contents: read
jobs:
  HandleEvent:
    runs-on: self-hosted
    # 先判断分支是否符合要求,再保留原有的main分支规则
    if: >-
      (
        startsWith(github.ref_name, 'ReleaseCandidates/') || 
        github.ref_name == 'main'
      ) && (
        github.ref_name != 'main' || (!github.event.deleted && !github.event.created)
      )
    steps:
      - name: Handles the event on the buildserver.
        run: #Do stuff

逻辑说明

  1. 移除on.push.branches:让所有push事件(分支创建、推送、删除)都能触发Workflow,避免因分支不存在导致的过滤拦截。
  2. Job层面的分支判断:通过startsWith(github.ref_name, 'ReleaseCandidates/')匹配所有ReleaseCandidates前缀的分支,结合github.ref_name == 'main'锁定目标分支范围。
  3. 保留原有main分支规则:继续排除main分支的创建和删除事件,仅允许常规推送或手动触发时执行。

这样配置后,ReleaseCandidates下的分支删除事件就能正常触发Workflow,同时也无需单独配置delete事件。

内容的提问来源于stack exchange,提问作者Refugnic Eternium

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 13:31:14