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

如何在GitHub Actions工作流中创建可动态填充的下拉选择框

实现GitHub Actions动态下拉参数选择的方案

核心逻辑

将工作流拆分为两个串行作业,第一阶段执行自定义脚本生成参数合法取值,把输出注入到后续手动确认步骤的下拉选项中,用户完成选择后再运行第二阶段的正式业务作业。

具体实现步骤

1. 提前配置仓库环境

进入GitHub仓库的Settings->Environments页面,新建一个名为dynamic-param-env的环境,做以下配置:

  • 开启Required reviewers,添加允许选择参数的用户/团队
  • 开启Required reviewers can provide inputs,预留两个选择类型的输入项位置

2. 编写工作流配置文件

在仓库的.github/workflows/目录下新建工作流yaml文件,参考配置如下:

name: 带动态参数选择的工作流
on:
  # 可根据你的需求替换为其他触发规则,比如定时触发、代码推送触发
  workflow_dispatch:

jobs:
  # 第一阶段作业:生成动态参数选项
  gen-dynamic-options:
    runs-on: ubuntu-latest
    outputs:
      param1-opts: ${{ steps.gen.outputs.param1 }}
      param2-opts: ${{ steps.gen.outputs.param2 }}
    steps:
      - uses: actions/checkout@v4
      - name: 执行自定义脚本生成参数合法值
        id: gen
        run: |
          # 替换为你自己的参数生成脚本,输出必须为JSON数组格式,例如 ["选项A","选项B","选项C"]
          PARAM1_VALUES=$(python3 ./scripts/gen_param1_options.py)
          PARAM2_VALUES=$(python3 ./scripts/gen_param2_options.py)
          # 将生成的选项写入作业输出
          echo "param1=$PARAM1_VALUES" >> $GITHUB_OUTPUT
          echo "param2=$PARAM2_VALUES" >> $GITHUB_OUTPUT

  # 第二阶段作业:用户选参后执行业务逻辑
  run-official-job:
    needs: gen-dynamic-options
    runs-on: ubuntu-latest
    # 关联提前配置好的带参审批环境
    environment: 
      name: dynamic-param-env
      # 把第一阶段生成的选项注入到环境的下拉选择框中
      inputs:
        selected_param1:
          type: choice
          options: ${{ needs.gen-dynamic-options.outputs.param1-opts }}
        selected_param2:
          type: choice
          options: ${{ needs.gen-dynamic-options.outputs.param2-opts }}
    steps:
      - name: 执行业务逻辑(示例为打印选中参数)
        run: |
          echo "用户选中的第一个参数为:${{ github.event.inputs.selected_param1 }}"
          echo "用户选中的第二个参数为:${{ github.event.inputs.selected_param2 }}"
          # 这里替换为你实际的业务执行代码

常见问题说明

  • 你的参数生成脚本必须输出标准JSON数组,不能有多余的转义字符、换行,否则会导致下拉选项解析失败
  • 如果不需要权限管控,只保留选参功能,可以把环境的审批者设置为所有需要操作工作流的用户即可
  • 如果触发方式为自动触发(比如定时),第一阶段作业会自动运行,生成最新选项后暂停等待用户选参,完全不需要硬编码修改参数选项

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 14:54:10