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
相关产品推荐
相关产品推荐

