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

如何在GitHub Action工作流的`with`块中使用环境变量?

GitHub Action复用工作流中共享变量的解决方案

错误原因

当使用uses调用复用工作流时,with参数的表达式上下文无法直接访问工作流级别的env变量,这是GitHub Actions的上下文规则限制:复用工作流的with参数仅支持访问vars、secrets、github等特定上下文,全局env不在这个范围内,因此直接引用会触发"Unrecognized named-value"错误。


解决方案

方案一:使用工作流级vars(推荐,需GitHub Actions 3.0+)

vars是GitHub Actions专门用于定义工作流级共享静态变量的特性,完全支持在复用工作流的with参数中引用:

name: Main

on:
  push:
    branches:
      - main
      - fix-main-deployment-workflow-post-database_version

# 用vars替代全局env定义共享变量
vars:
  database_version: 3.1.0-git-c919c26

jobs:
  <job_name>:
    name: Deploy to <some zone>
    needs:
      - helm
      - docker
    uses: <another yaml>
    with:
      database_version: ${{ vars.database_version }}

方案二:降级兼容(适用于不支持vars的旧版本)

将全局env变量注入到调用job的本地env中,再通过job.env上下文引用:

name: Main

on:
  push:
    branches:
      - main
      - fix-main-deployment-workflow-post-database_version

env:
  database_version: 3.1.0-git-c919c26

jobs:
  <job_name>:
    name: Deploy to <some zone>
    needs:
      - helm
      - docker
    # 将全局env注入当前job的本地env
    env:
      database_version: ${{ env.database_version }}
    uses: <another yaml>
    with:
      database_version: ${{ job.env.database_version }}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 11:17:45