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

GitHub Actions可复用工作流环境变量未正确插值问题

问题根因

GitHub Actions 里$变量名是shell执行环境专属的引用语法,仅在步骤的run块内(进入shell执行命令阶段)才会被解析展开。在工作流YAML本身的配置字段(比如job级env块、第三方action的入参配置块)中赋值时,shell环境尚未启动,不会识别$STAGING_GCR_PROJECT这类写法,会直接把它当成普通字符串原样存储。

定义STAGING_IMAGE时直接写$STAGING_GCR_PROJECT,这个值不会做任何替换,最终STAGING_IMAGE存储的就是字面量gcr.io/$STAGING_GCR_PROJECT/echo-server:1.0.2,后续Slack消息读取该变量时,就会把这段未解析的字符串直接发送出去。

修复方案

在YAML配置层面引用预定义的环境变量,必须使用GitHub Actions内置的上下文表达式语法${{ env.变量名 }},替换原有shell风格的引用即可。

修正后的job级env配置:

env:
      STAGING_IMAGE: "gcr.io/${{ env.STAGING_GCR_PROJECT }}/${{ inputs.image_name }}:${{ inputs.image_tag }}"

额外提示:配置中SLACK_ICON: $SLACK_ICON_SUCCESS的写法存在相同问题,如果SLACK_ICON_SUCCESS是提前定义的环境变量,也需要修改为SLACK_ICON: ${{ env.SLACK_ICON_SUCCESS }}才能正常解析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 21:30:22