■ はじめに
https://dk521123.hatenablog.com/entry/2022/06/21/143624
で、GITHUB_ENV を扱ったが、すっかり忘れたのと 来年の仕事で早速使いそうなので、まとめておく。
目次
【1】GITHUB_ENV 【2】使いどころ 【3】使用上の注意 1)Job間の変数受け渡しには使えない 【4】構文 1)受け渡し側 - 設定方法 2)受け取り側 - 参照方法 3)例 【5】サンプル 例1:ブランチ名によって設定値を切り替える
【1】GITHUB_ENV
公式の説明(※1)だといまいちよーわからなかったが、、、 * Github Actions内で使える環境変数のグローバル変数的な領域 => 後述「【3】構文」でイメージはつかめると思う
※1:公式ドキュメントの説明
https://docs.github.com/ja/actions/learn-github-actions/variables#default-environment-variables
GITHUB_ENV ワークフロー コマンドから変数を設定するファイルへのランナーのパス。 このファイルは現在のステップに固有であり、ジョブのステップごとで異なります。
【2】使いどころ
* 例えば、step の後に その際に出た出力値を 別stepで使いたい場合に使える => 環境変数 には、env があるが上記のようには使えない
より抜粋 環境変数を定義または更新し、 これを GITHUB_ENV 環境ファイルに書き込むことで、 ワークフロー ジョブの後続のステップで環境変数が利用できるようになります
【3】使用上の注意
1)Job間の変数受け渡しには使えない
* jobが異なると$GITHUB_ENVは使えない。 => 代わりに、$GITHUB_OUTPUT を使う
Github Actions ~ GITHUB_OUTPUT ~
https://dk521123.hatenablog.com/entry/2024/01/30/002943
【4】構文
1)受け渡し側 - 設定方法
* 「echo "<環境変数名>=<値>" >> $GITHUB_ENV」で設定可能
2)受け取り側 - 参照方法
* ${{ env.<環境変数名> }} で呼び出すことができる
3)例
jobs: lint-job: runs-on: ubuntu-latest steps: - name: init values run: | echo "ENV1=Hello" >> $GITHUB_ENV echo "ENV2=World" >> $GITHUB_ENV - name: show values run: | echo "env.ENV1 env.ENV2!!" # Hello World!!
【5】サンプル
* これ以外にも、以下の関連記事でも使っている
Github Actions ~ Python関連 ~
https://dk521123.hatenablog.com/entry/2022/06/21/143624
例1:ブランチ名によって設定値を切り替える
name: CI # Controls when the workflow will run on: # Triggers the workflow on push or pull request events but only for the "develop" branch push: branches: [ "develop" ] pull_request: branches: [ "develop" ] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: inputs: chosen-hello-world: required: true type: choice options: - Hello - World env: DEMO_S3_PATH: s3://your-s3-bucket/xxxx jobs: build: runs-on: ubuntu-latest steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - uses: actions/checkout@v4 # Settings Part - name: If main if: ${{ github.ref_name == 'main' }} run: | echo "MESSAGE=Hello" >> $GITHUB_ENV echo "BRANCH_NAME=main" >> $GITHUB_ENV - name: If other if: ${{ github.ref_name != 'main' }} run: | echo "MESSAGE=World" >> $GITHUB_ENV echo "BRANCH_NAME=${{github.ref_name}}" >> $GITHUB_ENV # Result Part - name: Result run: echo "MESSAGE=${{ env.MESSAGE }}, BRANCH_NAME=${{ env.BRANCH_NAME }}"
出力結果例
Run echo "MESSAGE=World, BRANCH_NAME=develop" MESSAGE=World, BRANCH_NAME=develop
参考文献
* 以下のサイトが分かりやすい
https://zenn.dev/kyome/articles/a89fd954c5936f
https://docs.github.com/ja/actions/using-workflows/workflow-commands-for-github-actions
関連記事
Github ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2019/07/18/234652
Github Actions ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2021/11/04/142835
Github Actions ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2022/06/16/151443
Github Actions ~ GITHUB_OUTPUT ~
https://dk521123.hatenablog.com/entry/2024/01/30/002943
Github Actions ~ Python関連 ~
https://dk521123.hatenablog.com/entry/2022/06/21/143624
Github Actions ~ 設定値を切り替えることを考える ~
https://dk521123.hatenablog.com/entry/2024/02/18/232926