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

GitHub Actions中如何基于下拉选择动态设置Environment的URL值

GitHub Actions动态设置Environment URL问题

问题描述

我在GitHub Actions中遇到问题:无法基于输入下拉选择设置Environment的url值。我的Workflow配置如下:

# This is a basic workflow to help you get started with running Fortify scans using ScanCentral into Fortify SSC

name: Namelink Scan

# Controls when the workflow will run
on:
  workflow_dispatch:
    inputs:
      choice:
        type: choice
        description: Please select the project to scan
        options:
        - Factorysite
        - HouseSite
env:
    Factorysite: "https://company.com"
    HouseSite: "https://house.com"

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
  # This workflow contains a single job called "Scan"
  Scan:
    # The type of runner that the job will run on
    runs-on: windows-latest
    environment:
      name: Test
      url: ${{ env.${{ inputs.choice }} }}
    steps:
      - uses: actions/checkout@v3

运行时出现错误:

The workflow is not valid. .github/workflows/Namelink.yml (Line: 27, Col: 12): Unexpected symbol: '${{'. Located at position 5 within expression: env.${{ inputs.choice

我尝试修改Environment部分的写法,比如改成:

environment:
      name: Test
      url: ${{env.echo ${{ inputs.choice }}}}

但仍然无法解决问题,请问该如何正确实现基于下拉选择动态设置Environment的url值?

解决方案

GitHub Actions表达式不支持嵌套的${{ }}语法,要实现动态引用环境变量,需使用方括号属性访问语法:

将environment部分的url字段修改为:

environment:
  name: Test
  url: ${{ env[inputs.choice] }}

关键说明

  • env在GitHub Actions中是一个对象,当需要通过动态变量作为键名访问其属性时,必须使用对象[动态键名]的形式,对象.静态键名仅适用于固定键名的场景。
  • 此前的错误源于嵌套了${{ }},违反了表达式语法规则;而env.echo的写法也是错误的——echo并非env对象的属性,且无法在表达式中直接执行shell命令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 08:01:55