ドキュメントには頻繁に更新が加えられ、その都度公開されています。本ページの翻訳はまだ未完成な部分があることをご了承ください。最新の情報については、英語のドキュメンテーションをご参照ください。本ページの翻訳に問題がある場合はこちらまでご連絡ください。
GitHub AEは、現在限定リリース中です。詳細については営業チームにお問い合わせください。

環境変数

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

ノート: GitHub Actionsは現在GitHub AEでベータです。

環境変数について

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 GITHUB_ENV environment file to set an environment variable that the following steps in a job can use. The environment file 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_REFOnly set for pull request events. headブランチの名前です。

ノート: ワークフローの実行の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」という言葉で最初から場所であることがわかっているため、この規則の例外です。

このドキュメントは役立ちましたか?

プライバシーポリシー

これらのドキュメントを素晴らしいものにするのを手伝ってください!

GitHubのすべてのドキュメントはオープンソースです。間違っていたり、はっきりしないところがありましたか?Pull Requestをお送りください。

コントリビューションを行う

OR, コントリビューションの方法を学んでください。

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