🤝
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