我无法从操作运行的脚本中访问在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配置文件中定义的FOO环境变量对脚本不可用,正在使用默认值。
那么,如何从构建步骤运行的Bash脚本访问环境变量呢?我是不是漏掉了一个前缀什么的?(我知道在input散列中定义的值要求您在引用它们时使用INPUT_前缀。)
发布于 2020-04-16 02:17:01
如果其他人正在寻找解决方案:
您必须显式地将环境变量传递给bash脚本。否则,它们将不可用。
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 $FOO在脚本中,您必须将参数映射到一个变量。
X=$1
echo "X: $X" # X: default希望这能有所帮助。
发布于 2020-04-25 23:48:22
您可以在any level中使用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 here。
事实上,我不知道为什么它在你这边不起作用,因为它必须起作用。
https://stackoverflow.com/questions/59867124
复制相似问题