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

如何在GitHub Workflows矩阵作业中指定或修改环境变量?

GitHub Workflows矩阵作业自定义环境变量的正确方式

你的配置有两个问题导致矩阵里的环境变量不生效:

  1. 矩阵include里直接写env字段的方式不被支持,GitHub Workflows矩阵只能定义独立变量,不能直接嵌套作业级配置项
  2. 步骤里的命令写错了变量名,MY_VAR2应该是MY_VAR

下面是两种可行的修正方案:

方案一:作业级别覆盖全局环境变量

通过矩阵定义变量值,再在作业的env字段中引用矩阵变量,实现全局环境变量的覆盖:

name: test-test-test

on:
  push:
    branches: [ main, develop ]
  pull_request:
    branches: [ main, develop ]

env:
  MY_VAR: One

jobs:
  test:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        include:
          - my_var_val: Two
          - my_var_val: Three
    # 用矩阵变量覆盖作业级的环境变量
    env:
      MY_VAR: ${{ matrix.my_var_val }}
    steps:
      - run: echo "$MY_VAR"

方案二:步骤级别直接使用矩阵变量

如果不需要整个作业都使用该变量,也可以直接在步骤中引用矩阵变量:

name: test-test-test

on:
  push:
    branches: [ main, develop ]
  pull_request:
    branches: [ main, develop ]

env:
  MY_VAR: One

jobs:
  test:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        include:
          - my_var_val: Two
          - my_var_val: Three
    steps:
      # 直接输出矩阵变量值
      - run: echo "${{ matrix.my_var_val }}"
      # 或者临时设置环境变量后使用
      - run: |
          export MY_VAR=${{ matrix.my_var_val }}
          echo "$MY_VAR"

关键说明

GitHub Workflows的矩阵strategy仅用于定义矩阵维度的变量,不能直接设置env这类作业级配置。必须先把要传递的环境变量值定义为矩阵变量,再在作业或步骤中显式引用,才能覆盖全局的env设置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 17:40:58