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

如何将环境变量作为输入传递给可复用GitHub Actions工作流?

GitHub Actions调用可复用工作流时输入变量为空的解决办法

问题场景

尝试从GitHub Actions工作流调用可复用工作流并传递输入变量,调用方工作流中定义了环境变量,希望将其作为输入传递,但可复用工作流中无法获取到变量值——调用方本地打印变量正常,可复用工作流打印结果为空。

调用方工作流配置

env:
  SOME_VAR: bla_bla_bla
  ANOTHER_VAR: stuff_stuff

jobs:
  print:
    runs-on: ubuntu-latest
    steps:
      - name: Print inputs passed to the reusable workflow
        run: |
          echo "some var: $SOME_VAR"
          echo "another var: $ANOTHER_VAR"
  call_reusable:
    uses: ...
    with:
      input_var: $SOME_VAR
      another_input_var: $ANOTHER_VAR

可复用工作流配置

on:
  workflow_dispatch:
  workflow_call:
    inputs:
      input_var:
        required: true
        type: string
      another_input_var:
        required: true
        type: string

jobs:
  the_job:
    runs-on: ubuntu-latest
    steps:
      - name: Print inputs
        run: |
          echo "input_var: ${{ inputs.input_var }}"
          echo "another_input_var: ${{ inputs.another_input_var }}"

错误日志

Run echo "input_var: ${{ inputs.input_var }}"
  echo "another_input_var: ${{ inputs.another_input_var }}"
  shell: /usr/bin/bash -e {0}
input_var: 
another_input_var: 

解决思路

  • 核心问题:调用方工作流的with块中直接使用$SOME_VAR无法被GitHub Actions解析,因为工作流的with参数属于配置层面,不是shell执行环境,必须用GitHub Actions表达式语法引用环境变量。
  • 修正调用方配置:将with块中的变量引用改为${{ env.SOME_VAR }}格式,修改后的call_reusable job配置如下:
call_reusable:
  uses: ...
  with:
    input_var: ${{ env.SOME_VAR }}
    another_input_var: ${{ env.ANOTHER_VAR }}
  • 原理说明:GitHub Actions中,工作流级别的环境变量需要通过env上下文(${{ env.变量名 }})来引用,直接写$变量名会被当作普通空字符串传递,导致可复用工作流接收不到有效值。
  • 验证:修改后重新运行工作流,可复用工作流的Print inputs步骤将正常打印出传递的变量值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 23:24:47