如何在 Action 运行的 Bash 脚本中访问 GitHub Action 环境变量?

2023-12-26

我无法从操作运行的脚本中访问在 GitHub 操作配置文件顶层定义的环境变量。

例如,给定以下配置文件:

name: x-pull-request
on: pull_request
env:
  FOO: bar
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v1
      - name: does a thing
        run: ./scripts/do-a-thing.sh

...以及以下脚本:

X=${FOO:default}
echo "X: $X" # X: default

The FOO配置文件中定义的环境变量不可用于脚本,并且正在使用默认值。

那么,如何从构建步骤运行的 Bash 脚本访问环境变量呢?我是否缺少前缀或其他内容? (我知道定义在input散列要求您使用INPUT_引用它们时的前缀。)


您可以在以下位置使用 env任何级别 https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#env还有工作和步骤。

我编写了一个测试操作和一个测试脚本来验证它:

动作文件:

name: Env tests
on: push

env:
  FOO_ROOT: bar on root

jobs:
  test:
    runs-on: ubuntu-latest
    env:
      FOO_JOB: bar on job
    steps:
      - uses: actions/checkout@v1
      - name: Test envs
        run: ./env-test.sh
        env:
          FOO_STEP: bar on step

脚本文件:

#!/usr/bin/env bash

echo "FOO_ROOT: $FOO_ROOT"
echo "FOO_JOB: $FOO_JOB"
echo "FOO_STEP: $FOO_STEP"
echo " "
printenv

结果:

FOO_ROOT: bar on root
FOO_JOB: bar on job
FOO_STEP: bar on step

LEIN_HOME=/usr/local/lib/lein
M2_HOME=/usr/share/apache-maven-3.6.3
...

检查我的results https://github.com/TiagoGouvea/github-actions-test/runs/618139105?check_suite_focus=true事实上,我不知道为什么它对你不起作用,因为它必须起作用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Action 运行的 Bash 脚本中访问 GitHub Action 环境变量? 的相关文章