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

如何在GitHub Actions工作流中传递全部环境变量与密钥

无需逐个映射即可使用GitHub环境变量和密钥的方法

当然有,两种简便方法可以批量导入环境里的所有变量和密钥,不用手动逐个映射:

方法1:在步骤/Job级别批量注入

直接通过${{ vars }}和${{ secrets }}批量导入当前环境下的所有变量和密钥,示例如下:

仅对单个步骤生效

jobs:
  build:
    runs-on: ubuntu-latest
    environment: dev
    steps:
      - name: Build
        env:
          ${{ vars }}  # 导入环境中所有vars(FOO、BAR、BAZ等)
          ${{ secrets }}  # 导入环境中所有secrets(TOKEN等)
        run: |
          # 直接使用变量,无需提前映射
          echo "FOO的值:$FOO"
          echo "TOKEN已加载(日志会自动屏蔽敏感内容):$TOKEN"

对整个Job的所有步骤生效

如果想让Job下的所有步骤都能直接使用这些变量,把批量注入的逻辑放在Job级别即可:

jobs:
  build:
    runs-on: ubuntu-latest
    environment: dev
    env:
      ${{ vars }}
      ${{ secrets }}
    steps:
      - name: 第一步
        run: echo "BAR的值:$BAR"
      - name: 第二步
        run: echo "BAZ的值:$BAZ"

方法2:全局默认注入所有步骤

通过defaults.run.env配置,让仓库中所有Job的所有run步骤都自动加载环境变量和密钥(适合全仓库通用的场景):

defaults:
  run:
    env:
      ${{ vars }}
      ${{ secrets }}

jobs:
  build:
    runs-on: ubuntu-latest
    environment: dev
    steps:
      - name: Build
        run: |
          echo "FOO的值:$FOO"
          echo "TOKEN已加载"

注意事项

  • 若变量名和密钥名重复,后声明的会覆盖先声明的(比如上面示例中${{ secrets }}在${{ vars }}之后,同名的话密钥会覆盖变量)
  • 敏感密钥会被GitHub自动屏蔽,在日志中显示为***,这是正常的安全机制
  • 只有当前指定环境(dev)下的变量和密钥会被导入,仓库级的变量/密钥会和环境级的合并(环境级优先级更高)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 03:22:50