GitHub Actionsにおける環境変数の記述法

はじめに

この記事では、「GitHub_Actionsにおける環境変数の記述法」について書いています。

GitHub Actionsで環境変数を利用しようとしたときに、状況によって書き方が微妙に違ったりしてハマったのが記事を書いたきっかけでした。

自分に向けた備忘録でもありますが、「GitHub Actionsにおける環境変数の記述法が知りたい」や「GitHub Actionで環境変数のエラーが発生する」な人の一助になれば嬉しいです。

要点だけ

  • ワークフロー内で利用できるコンテキストという変数
    • ${{ env.VARIABLE }}のように書く
  • 実際のコンピュータ内で利用できる環境変数
    • Windows
      • $VARIABLEのように書く
    • Ubuntu, Mac-OS
      • $env:VARIABLEのように書く

試してみる

以下のようなymlファイルを用意します。

name: Action Sample

on:
  workflow_dispatch:

env:
  GREETING: Hello

jobs:
  greet_linux:

    runs-on: ubuntu-latest

    steps:
      - name: ${{env.GREETING}}-from-linux
        run: echo "$GREETING World!"
        
  greet_windows:

    runs-on: windows-latest

    steps:
      - name: ${{env.GREETING}}-from-windows
        run: echo "$env:GREETING World!"

Linux環境(runs-on: ubuntu-latest)とWindows環境(runs-on: windows-latest)でHello World!を出力させるようなものです。

Mac環境については、Linuxと同じ書き方で良いので省略しています)

ポイントは、それぞれのsteps:以下で記述している箇所で、それぞれ解説していきます。

workflowファイルで参照する(nameの部分)

まずはname:の行の部分です。Linux, Windows共に${{env.GREETING}}という書き方で環境変数を使用しています。

このようなymlファイル上で環境変数にアクセスする場合には、${{ env.変数名 }}という書き方で環境変数を参照します。

action実行中で参照する(runの部分)

この部分は、Linux環境とWindows環境で書き方が変わってきます。

これはそれぞれでシェルが違う(Linux環境はbashシェル、Windows環境だとPowerShell)ためで、注意が必要です。

Linux環境の方では"$変数名Windows環境の方では$env:変数名という書き方で環境変数を参照します。

おわりに

GitHub_Actionsにおける環境変数の記述法」について解説しました。

少しややこしいですが、これを知っておくことでより見やすく、また再利用しやすいymlファイルを書くことができるかと思います。

さいごに、記事を書く上で参考にしたサイトのリンクを以下に掲載します。合わせて読んでいただくと良いかと思います。

https://docs.github.com/ja/actions/learn-github-actions/environment-variables

https://book.st-hakky.com/docs/github-actions-environment-variable/