如何在 GitHub Actions 工作流程中创建下拉菜单

Avn*_*arr 3 github github-actions

我的工作流程需要从用户接收 2 个输入参数。这些参数的有效值由单独的脚本定义。这些值可以更改(无法对它们进行硬编码),因此我想在运行作业时动态填充列表。选择器应根据允许用户选择的脚本结果进行更新,然后才应使用这些值作为作业的输入来运行实际作业

如何提供这样的下拉菜单?

Von*_*onC 5

自 2021 年 11 月起,input类型实际上可以是choice列表。

GitHub Actions:手动工作流程的输入类型

您现在可以指定input手动触发的工作流程的类型,从而为工作流程的用户提供更好的体验。
除了默认string类型之外,我们现在还支持choicebooleanenvironment

name: Mixed inputs

on:
  workflow_dispatch:
    inputs:
      name:
        type: choice
        description: Who to greet
        options: 
        - monalisa
        - cschleiden
      message:
        required: true
      use-emoji:
        type: boolean
        description: Include  emojis
      environment:
        type: environment

jobs:
  greet:
    runs-on: ubuntu-latest

    steps:
    - name: Send greeting
      run: echo "${{ github.event.inputs.message }} ${{ fromJSON('["", ""]')[github.event.inputs.use-emoji == 'true'] }} ${{ github.event.inputs.name }}"
Run Code Online (Sandbox Code Playgroud)

这将提供一个下拉菜单。

问题仍然是:您可以将选项列表作为变量传递给您的input choice字段吗?

如果您可以通过另一个作业(计算您的列表)填充输入 context ,并调用您选择的作业,通过/传递列表,您应该这样做jobs.<job_id>.withjobs.<job_id>.with.<input_id>


假设我的“部署”作业带有“workflow_dispatch”输入。我将添加一个新的“准备”作业,它将生成一个相关的选择列表。但是,在“准备”工作之后,我如何能够手动调用“部署”工作呢?

由于选项是使用on.workflow_dispatch.inputs, typechoice静态定义的,因此尚不支持。

这次讨论中要求:

理想情况下,GitHub Actions 将支持运行一段代码(可能通过预触发操作)来填充一个或多个内容,而不是现有功能请求将(过滤的)标签(或分支)作为手动工作流触发器的选择选项手动触发的选项。

预触发操作的一个用例可能是填充标签和/或分支的(过滤后的)列表。