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

如何过滤GitHub Actions中Workflow Dispatch的“Use workflow from”分支选项?

GitHub Actions生产环境部署分支筛选方案

方案1:用分支规则+工作流条件间接限制

GitHub Actions没法直接修改默认的「Use workflow from」下拉框,但可以通过以下方式实现类似筛选的效果:

  • 先去仓库「Settings」→「Branches」里给master和release/**分支加保护规则(按需配置审核、状态检查等),避免无关分支被误操作。
  • 在生产部署的工作流文件(比如.github/workflows/prod-deploy.yml)里加触发条件,确保只有指定分支能执行部署:
on:
  workflow_dispatch:
  push:
    branches:
      - master
      - 'release/**'

jobs:
  prod-deploy:
    runs-on: ubuntu-latest
    # 手动触发时,强制校验分支是否符合要求
    if: startsWith(github.ref, 'refs/heads/master') || startsWith(github.ref, 'refs/heads/release/')
    steps:
      - name: 拉取代码
        uses: actions/checkout@v4
      # 这里写你的部署步骤

就算有人从其他分支手动触发工作流,也会因为分支不符合条件直接跳过部署,相当于实现了筛选效果。

方案2:自定义分支选择输入框(更直接)

直接绕开默认的分支选择下拉框,自己定义一个只显示允许分支的输入选项:
在工作流文件里添加自定义输入,把允许的分支列出来:

on:
  workflow_dispatch:
    inputs:
      target_branch:
        description: '选择要部署的分支'
        required: true
        type: choice
        options:
          - master
          - release/v1.x
          - release/v2.x
          # 可以根据你的版本规则添加更多release分支

jobs:
  prod-deploy:
    runs-on: ubuntu-latest
    steps:
      - name: 拉选指定分支代码
        uses: actions/checkout@v4
        with:
          ref: ${{ github.event.inputs.target_branch }}
      # 后续部署步骤...

这种方式用户只能选你预设的分支,完全不会出现不符合要求的选项。如果需要自动获取所有release/**分支,可以结合GitHub API动态生成选项,但手动维护选项对大多数场景来说更简单。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 02:04:59