このバージョンの GitHub Enterprise はこの日付をもって終了となりました: 2021-09-23. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの改善、新機能のためには、最新バージョンのGitHub Enterpriseにアップグレードしてください。 アップグレードに関する支援については、GitHub Enterprise supportに連絡してください。

環境変数

GitHubはそれぞれのGitHub Actionsワークフローの実行に対してデフォルトの環境変数を設定します。 ワークフローファイル中でカスタムの環境変数を設定することもできます。

GitHub ActionsはGitHub Free、GitHub Pro、GitHub FreeのOrganization、GitHub Team、GitHub Enterprise Cloud、GitHub AEで利用できます。 GitHub Actionsは、レガシーのリポジトリごとのプランを使っているアカウントが所有しているプライベートリポジトリでは利用できません。

ノート: GitHub Actionsは、GitHub Enterprise Server 2.22で限定ベータとして利用可能でした。 ベータは終了しました。 GitHub Actionsは、GitHub Enterprise Server 3.0以降で一般に利用可能になりました。 詳しい情報については、GitHub Enterprise Server 3.0 のリリースノートを参照してください。


ノート: GitHubホストランナーは、現在GitHub Enterprise Serverでサポートされていません。 GitHubパブリックロードマップで、計画されている将来のサポートに関する詳しい情報を見ることができます。

環境変数について

GitHubは、ワークフローの実行におけるどのステップでも使用できる、デフォルトの環境変数を設定します。 環境変数では、大文字小文字は区別されます。 アクションあるいはステップ内で実行されるコマンドは、環境変数を作成、読み取り、変更することができます。

カスタムの環境変数を設定するには、ワークフローファイル中でその変数を指定しなければなりません。 jobs.<job_id>.steps[*].envjobs.<job_id>.envenvといったキーワードを使って、ステップ、ジョブ、あるいはワークフロー全体の環境変数を定義できます。 詳しい情報については、「GitHubのワークフロー構文」を参照してください。

jobs:
  weekday_job:
    runs-on: ubuntu-latest
    env:
      DAY_OF_WEEK: Mon
    steps:
      - name: "Hello world when it's Monday"
        if: ${{ env.DAY_OF_WEEK == 'Mon' }}
        run: echo "Hello $FIRST_NAME $middle_name $Last_Name, today is Monday!"
        env:
          FIRST_NAME: Mona
          middle_name: The
          Last_Name: Octocat

環境変数の値をワークフローファイル内で使うには、envコンテキストを使わなければなりません。 環境変数の値をランナー内で使いたいなら、ランナーのオペレーティングシステムで環境変数を読む通常の方法が使えます。

ワークフローファイルのrunキーを使って環境変数をランナーのオペレーティングシステム内から読む場合(上の例のように)、ジョブがランナーに送られた後に変数はランナーのオペレーティングシステム内で置き換えられます。 ワークフローファイルの他の部分では、環境変数を読むためにenvコンテキストを使わなければなりません。これは、ワークフローのキー(ifなど)で、ワークフローがランナーに送られる前に変数が置き換えられなければならないためです。

You can also use the set-env workflow command to set an environment variable that the following steps in a job can use. The set-env command can be used directly by an action or as a shell command in a workflow file using the run keyword. 詳しい情報については「GitHub Actionsのワークフローコマンド」を参照してください。

デフォルトの環境変数

アクションでは、ファイルシステムにアクセスするとき、ハードコードされたファイルパスを使うのではなく環境変数を使用することを強くお勧めします。 GitHubは、すべてのランナー環境でアクションが使用する環境変数を設定します。

環境変数説明
CI常にtrueに設定されます。
GITHUB_WORKFLOWワークフローの名前。
GITHUB_RUN_IDリポジトリ内でユニークな各実行に対する番号。 この番号は、ワークフローの実行をやり直しても変化しません、
GITHUB_RUN_NUMBERリポジトリ内の特定のワークフローの各実行に対するユニークな番号。 この番号は、ワークフローの最初の実行時に1で始まり、新たな実行ごとにインクリメントされます。 この番号は、ワークフローの実行をやり直しても変化しません、
GITHUB_JOB現在のジョブの job_id
GITHUB_ACTIONアクションの一意の識別子 (id)。
GITHUB_ACTION_PATHアクションが置かれているパス。 このパスを使用して、アクションと同じリポジトリにあるファイルにアクセスできます。 This variable is only supported in composite actions.
GITHUB_ACTIONSGitHub Actionsがワークフローを実行しているときは常にtrueに設定されます。 この変数は、テストがローカルで実行されているときと、GitHub Actionsによって実行されているときを区別するために利用できます。
GITHUB_ACTORワークフローを開始するユーザまたはアプリの名前。 octocatなどです。
GITHUB_REPOSITORY所有者およびリポジトリの名前。 octocat/Hello-Worldなどです。
GITHUB_EVENT_NAMEワークフローをトリガーしたwebhookイベントの名前。
GITHUB_EVENT_PATH完了したwebhookイベントペイロードのファイルのパス。 /github/workflow/event.jsonなどです。
GITHUB_WORKSPACEThe GitHub workspace directory path, initially empty. たとえば、/home/runner/work/my-repo-name/my-repo-nameとなります。 The actions/checkout action will check out files, by default a copy of your repository, within this directory.
GITHUB_SHAワークフローをトリガーしたコミットSHA。 たとえば、ffac537e6cbbf934b08745a378932722df287a53です。
GITHUB_REFワークフローをトリガーしたブランチまたはタグref。 たとえば、refs/heads/feature-branch-1です。 イベントタイプのブランチもタグも利用できない場合、変数は存在しません。
GITHUB_HEAD_REFPull Requestのイベントに対してのみ設定されます。 headブランチの名前です。
GITHUB_BASE_REFPull Requestのイベントに対してのみ設定されます。 ベースブランチの名前です。
GITHUB_SERVER_URLGitHub Enterprise Server サーバーの URL を返します。 For example: https://[hostname].
GITHUB_API_URLAPI URL を返します。 For example: http(s)://[hostname]/api/v3.
GITHUB_GRAPHQL_URLグラフ QL API の URL を返します。 For example: http(s)://[hostname]/api/graphql.
RUNNER_NAMEThe name of the runner executing the job.
RUNNER_OSジョブを実行しているランナーのオペレーティングシステム。 取り得る値はLinuxWindowsmacOSのいずれか。
RUNNER_TEMPランナー上の一時ディレクトリへのパス。 このディレクトリは、各ジョブの開始及び終了時点で空になります。 ランナーのユーザアカウントが削除する権限を持っていない場合、ファイルは削除されないことに注意してください。
RUNNER_TOOL_CACHEGitHubホストランナーにプレインストールされているツールを含むディレクトリへのパス。 詳しい情報については、「GitHub ホストランナーの仕様」を参照してください。

ノート: ワークフローの実行のURLをジョブの中から使う必要がある場合は、$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_IDというようにこれらの環境変数を組み合わせることができます。

デフォルトの環境変数を使う場合とコンテキストを使う場合の判断

GitHub Actionsは、コンテキストと呼ばれる変数の集合と、デフォルトの環境変数と呼ばれる同様の変数の集合を含みます。 これらの変数は、ワークフロー中の様々な場所で利用されることを意図したものです。

  • デフォルトの環境変数: これらの変数は、ジョブを実行しているランナー上にのみ存在します。 詳しい情報については、「デフォルトの環境変数」を参照してください。
  • コンテキスト: ほとんどのコンテキストはワークフローの任意の場所で利用できます。これは、デフォルトの環境変数が利用できない場所も含みます。 たとえば、式の付いたコンテキストを使って、ジョブが実行のためにランナーにまわされる前に初期の処理を行うことができます。これによって、ステップを実行すべきかを判断するために条件のifキーワード付きのコンテキストが利用できるようになります。 ジョブが実行されると、runner.osといったように、コンテキスト変数をジョブを実行しているランナーから取り出すこともできます。 ワークフロー中で様々なコンテキストが利用できる場所の詳細については「コンテキストが利用できるところ」を参照してください。

以下の例は、様々な種類の環境変数をジョブの中で合わせて利用できることを示しています。

name: CI
on: push
jobs:
  prod-check:
    if: ${{ github.ref == 'refs/heads/main' }}
    runs-on: ubuntu-latest
    steps:
      - run: echo "Deploying to production server on branch $GITHUB_REF"

この例では、if文がgithub.refコンテキストをチェックして現在のブランチ名を判断しています。その名前がrefs/heads/mainであれば、以降のステップが実行されます。 このifチェックがGitHub Actionsで処理されたなら、その結果がtrueの場合にのみジョブがランナーに送信されます。 ジョブがランナーに送信されると、ステップが実行され、環境変数の$GITHUB_REFをランナーから参照します。

環境変数の命名規則

カスタム環境変数を設定する場合、接頭辞の GITHUB_ が付いた上記のデフォルトの環境変数名を使用することはできません。 これらのデフォルトの環境変数のいずれかの値をオーバーライドしようとすると、割り当ては無視されます。

ファイルシステム上の場所を指すように設定した新しい環境変数がある場合は、_PATHサフィックスを指定する必要があります。 デフォルトの変数HOMEGITHUB_WORKSPACEは、「home」および「workspace」という言葉で最初から場所であることがわかっているため、この規則の例外です。

問題がまだ解決していませんか?