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

如何在GitHub Actions中创建条件式选择输入?

GitHub Actions实现依赖式选择输入的方案

GitHub Actions的workflow_dispatch原生不支持基于前置选择动态更新后续选项的功能——工作流文件是静态定义的,触发时的输入选项在触发前就已固定,无法根据用户的实时选择动态变更。不过可以通过以下替代方案实现类似需求:

方案1:输入校验+条件执行

把所有可能的选项都列出来,在工作流运行时校验用户选择是否符合依赖关系,不符合则直接报错终止:

name: Test GitHub Workflow Options
on: 
  workflow_dispatch:
    inputs:
      letter:
        description: 'Letter Choice'
        required: true
        type: choice
        options:
          - "A"
          - "B"
      number:
        description: 'Number Choice (A对应1/2,B对应3/4)'
        required: true
        type: choice
        options:
          - "1"
          - "2"
          - "3"
          - "4"

jobs:
  validate-input:
    runs-on: ubuntu-latest
    steps:
      - name: 校验数字选择与字母匹配
        if: |
          (inputs.letter == 'A' && !contains(['1','2'], inputs.number)) ||
          (inputs.letter == 'B' && !contains(['3','4'], inputs.number))
        run: |
          echo "错误:数字选择与所选字母不匹配"
          exit 1
  main-task:
    runs-on: ubuntu-latest
    needs: validate-input
    steps:
      - name: 根据选择执行任务
        run: |
          echo "已选择字母:${{ inputs.letter }},数字:${{ inputs.number }}"
          # 这里添加你的业务逻辑

方案2:分阶段触发+参数传递

通过两次手动触发工作流,结合存储参数实现依赖选择:

  • 第一个工作流仅提供字母选择,触发后将选择结果存储到GitHub环境变量或仓库文件中(可借助actions/github-script完成);
  • 第二个工作流读取存储的字母参数,在运行阶段根据该参数执行对应逻辑;若仍需用户选择数字,可通过Issue评论、Discussions或外部工具收集输入后继续执行。

这个方案适合需要严格依赖选择的场景,但操作流程相对繁琐。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 21:05:07