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

GitHub Actions工作流环境变量配置失败问题排查

解决GitHub Actions环境变量跨步骤读取及Python脚本获取失败问题

问题根源

你当前的配置存在两个关键错误:

  • 步骤内定义的env仅对当前步骤生效,无法直接跨步骤读取
  • 尝试用steps.outputs.TEST_VAR获取环境变量是错误用法,steps.outputs用于读取步骤的输出值,而非环境变量

修复方案

1. 跨步骤共享环境变量

要让环境变量在后续步骤可用,需将变量写入GitHub Actions的环境文件$GITHUB_ENV,修改工作流配置如下:

name: test

on:
  push:
    branches: [ "master" ]
  pull_request:
    branches: [ "master" ]
    
permissions:
  id-token: write
  contents: read

jobs:
  build:
    runs-on: ubuntu-latest
    env:
      SERVICE_NAME: daily monitoring

    steps:
    - name: "Setup env vars"
      run: |
        echo "Test"
        # 将变量写入GITHUB_ENV,让后续步骤可访问
        echo "TEST_VAR=test variable value" >> "$GITHUB_ENV"
        
    - name: "Print TEST_VAR"
      run: echo "var is $TEST_VAR"

2. 在Python脚本中读取环境变量

如果要在Python脚本中获取环境变量,需确保执行脚本的步骤能访问到目标变量(可通过$GITHUB_ENV传递,或直接在脚本步骤中定义):
示例工作流步骤:

- name: Run Python script
  env:
    # 调用之前写入GITHUB_ENV的变量
    TEST_VAR: ${{ env.TEST_VAR }}
    # 若使用Secrets,直接引用即可
    SECRET_VAR: ${{ secrets.MY_SECRET }}
  run: python your_script.py

对应的Python脚本:

import os

test_var = os.getenv("TEST_VAR")
secret_var = os.getenv("SECRET_VAR")
print(f"TEST_VAR: {test_var}")
print(f"SECRET_VAR: {secret_var}")

验证效果

修改后,Print TEST_VAR步骤会输出var is test variable value,Python脚本也能正常读取到环境变量值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 20:15:17