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

如何配置GitHub Actions仅在非特定前缀源分支发起PR时运行?

针对PR源分支设置触发规则的解决方案

GitHub Actions 的 branches/branches-ignore 配置确实仅作用于 PR 的目标分支,无法直接用来过滤源分支。要实现「仅当源分支不以 random/name* 开头时触发工作流」的需求,需要通过条件表达式来控制执行逻辑,以下是两种可行方案:

方案1:在 Job 级别设置执行条件

这种方式会先触发工作流,但仅当条件满足时才执行对应 Job,适合需要保留工作流记录但跳过特定分支任务的场景:

on:
  pull_request:
    branches: [main]

jobs:
  your-job-name:
    runs-on: ubuntu-latest
    # 核心条件:排除以 random/name 开头的源分支
    if: ${{ !startsWith(github.head_ref, 'random/name') }}
    steps:
      - uses: actions/checkout@v4
      # 这里添加你的任务步骤

方案2:在触发阶段直接过滤

这种方式会在工作流触发前就判断条件,不符合的话不会创建工作流运行记录,适合需要完全避免触发的场景:

on:
  pull_request:
    branches: [main]
    # 触发前判断源分支是否不符合规则
    if: ${{ !startsWith(github.head_ref, 'random/name') }}

jobs:
  your-job-name:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      # 这里添加你的任务步骤

关键说明

  • github.head_ref 是 GitHub Actions 提供的内置变量,对应 PR 的源分支名称;
  • startsWith() 是内置的表达式函数,用来判断字符串是否以指定前缀开头,加上 ! 取反后就实现了排除规则;
  • 即使是来自 Fork 仓库的 PR,github.head_ref 也能正常获取到源分支的名称,无需额外配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 16:23:22