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

无法在GitHub Actions组合步骤中传递默认环境变量的问题

解决GitHub Actions组合步骤中环境变量无法动态传递的问题

你的问题核心是在with参数中引用环境变量时使用了错误的语法,GitHub Actions的with参数仅识别${{ ... }}包裹的表达式语法,shell风格的$VAR或${VAR}会被当作纯字符串处理,导致变量无法被解析为实际值。

修正后的调用代码

将所有环境变量引用统一改为GitHub表达式语法${{ env.变量名 }},包括默认环境变量和自定义环境变量:

- name: Do a thing
  uses: ./.github/actions/my-action
  with:
    repositoryUrl: ${{ env.GITHUB_SERVER_URL }}/${{ env.GITHUB_REPOSITORY }}
    commitSha: ${{ env.GITHUB_SHA }}
    context: ${{ env.DOCKER_CONTEXT_PATH }}
    tags: ${{ needs.generate-tag.outputs.DOCKER_IMAGE }}
    dockerfile: ${{ env.DOCKERFILE_PATH }}
    push: true
    platforms: linux/amd64, linux/arm64

关键说明

  1. 默认环境变量必须用env上下文引用:比如GITHUB_REPOSITORY、GITHUB_SHA这些GitHub内置环境变量,必须通过${{ env.GITHUB_REPOSITORY }}的形式调用,不能直接写$GITHUB_REPOSITORY。
  2. 变量拼接要分开解析:repositoryUrl的拼接需要分别解析两个环境变量,不能写成${{ env.GITHUB_SERVER_URL }}/$GITHUB_REPOSITORY,否则后半部分会被当作字符串。
  3. 组合步骤的参数传递规则:组合步骤确实无法直接访问调用方的环境变量,必须通过with参数显式传递,但只要传递时用对表达式语法,就能正确传递动态值。

修正后,你的构建输出中的标签会变成实际的仓库URL和Commit SHA,比如:

--label org.opencontainers.image.source="https://github.com/你的用户名/你的仓库名" --label org.opencontainers.image.revision="abc123def456..."

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 20:40:17