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

如何在GitHub Action中传递Bash变量作为参数 解决变量不解析问题

问题解决方法

你遇到的是GitHub Actions跨步骤传递变量的典型场景,直接调整配置如下即可生效:

- name: Get version
  run: |
    # 将变量写入GitHub Actions内置的环境变量持久化文件
    echo "VER=$(cat ver.txt)" >> $GITHUB_ENV
- name: Build docker image
  uses: kciter/aws-ecr-action@v3
  with:
    // 其余参数保持不变
    extra_build_args: "--build-arg CURRENT_DD_VERSION=${{ env.VER }}"

核心原理说明

  • 你之前在run步骤内直接声明的VER是shell局部变量,仅在当前步骤的shell进程中生效,既无法传递到后续步骤,也不能在with字段的参数中被直接解析。
  • with字段的参数需要使用GitHub Actions专属的${{ 表达式 }}语法进行插值,不能直接使用shell的$VAR类语法。
  • 写入$GITHUB_ENV的变量会被挂载到所有后续步骤的执行环境,可通过${{ env.变量名 }}的语法在YAML配置中直接读取。

可选方案:使用步骤输出传递

如果你不想污染全局环境变量,也可以通过步骤输出的方式传值:

- name: Get version
  id: get_ver # 给当前步骤设置id,用于后续步骤引用输出
  run: |
    echo "ver=$(cat ver.txt)" >> $GITHUB_OUTPUT
- name: Build docker image
  uses: kciter/aws-ecr-action@v3
  with:
    // 其余参数保持不变
    extra_build_args: "--build-arg CURRENT_DD_VERSION=${{ steps.get_ver.outputs.ver }}"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 04:09:03