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

如何在GitHub Actions中通过动态键变量访问环境变量?

GitHub Actions 动态获取vars变量值的可行方案

GitHub Actions的表达式语法不支持直接通过vars.$动态键名这种方式访问属性,要实现动态获取vars中对应键的值,可采用以下两种可行方案:

方案一:纯表达式实现(无需额外工具)

利用toJSON和fromJSON将vars对象转为可通过方括号语法访问的结构,直接通过动态键名取值:

- name: 动态获取vars值并写入环境变量
  run: echo "P_SCHEMA=${{ fromJSON(toJSON(vars))[v_db_schema] }}" >> $GITHUB_ENV

原理:toJSON(vars)将vars对象序列化为JSON字符串,fromJSON再将其转回可访问的对象,最后通过[v_db_schema]传入动态键名完成取值,最终把结果写入环境变量供后续步骤使用。

方案二:Shell脚本结合jq解析

如果需要更复杂的处理逻辑,可借助jq工具解析JSON格式的vars:

- name: 动态获取vars值并写入环境变量
  env:
    ALL_VARS: ${{ toJSON(vars) }}
    DB_SCHEMA_KEY: ${{ v_db_schema }}
  run: |
    # 用jq解析JSON,通过动态键名提取对应值
    P_SCHEMA=$(echo "$ALL_VARS" | jq -r ".\"$DB_SCHEMA_KEY\"")
    echo "P_SCHEMA=$P_SCHEMA" >> $GITHUB_ENV

注意:大多数GitHub官方runner镜像已预装jq,若使用自定义镜像需确保已安装该工具。

关键注意事项

  • 确保v_db_schema变量的值是vars中已存在的有效键名,否则会返回空值。
  • 方案一更简洁高效,优先推荐;方案二更灵活,适合复杂场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 14:32:37