我无法从操作运行的脚本中访问在 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(使用前将#替换为@)