アクションによって実行されるスクリプト内から、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_
接頭辞を使用する必要があることを知っています。)
ルートアクションなので、ジョブとステップでも 任意のレベル で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
...
私のチェック 結果はこちら 。
実際、なぜあなたの側でうまくいかなかったのかはわかりません。
他の誰かが解決策を探している場合:
環境変数を明示的に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
お役に立てれば。