🤝
GitHub Actions の「GITHUB_ENV」は、環境変数を設定したstepでは参照不可
stepであればすべて$GITHUB_ENV
を利用できると思っていたのでメモです。
はじめに
GitHub Actionsでは、$GITHUB_ENV
にキーバリュー形式で環境変数を設定することにより、それを参照することができます。
では参照できるのは誰なのか?
以下のように記載があります。後続のstepですね。
環境変数を作成または更新するステップは、新しい値にアクセスできませんが、ジョブにおける後続のすべてのステップはアクセスできます。
記載に従うと環境変数を設定したstepからはアクセスできない
ということです。
書いてあることまんまなのですが、試してみました。
後続のstepから参照するパターン
コード
ドキュメントの例をパクります
test.yaml
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set the value
id: step_one
run: |
echo "action_state=yellow" >> $GITHUB_ENV
- name: Use the value
id: step_two
run: |
echo "${{ env.action_state }}"
結果
問題なく出力されます。
同じstepから参照するパターン
step_one
の中から参照してみます。
コード
test.yaml
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set the value
id: step_one
run: |
echo "action_state=yellow" >> $GITHUB_ENV
echo "${{ env.action_state }}"
結果
ワークフローは成功しますが、出力はされませんでした。
echo
で出力しようとしていますが、空になっているみたいですね。
まとめ
環境変数を設定したstepからGITHUB_ENV
を参照することはできませんでした。
run
でスクリプトをまとめて実行していると、ここでひっかかるかもしれません。
可能なら役割ごとにstepを分けるのがいいですね。
Discussion