ドキュメントには頻繁に更新が加えられ、その都度公開されています。本ページの翻訳はまだ未完成な部分があることをご了承ください。最新の情報については、英語のドキュメンテーションをご参照ください。本ページの翻訳に問題がある場合はこちらまでご連絡ください。
GitHub AE is currently under limited release. Please contact our Sales Team to find out more.

環境変数

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

GitHub ActionsはGitHub Free、GitHub Pro、GitHub FreeのOrganization、GitHub Team、GitHub Enterprise Cloud、GitHub Enterprise Server、GitHub One、GitHub AEで利用できます。 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など)で、ワークフローがランナーに送られる前に変数が置き換えられなければならないためです。

GITHUB_ENV 環境ファイル を使用して、ワークフローの次の手順で使用できる環境変数を設定することもできます。 環境ファイル は、アクションによって直接使用することも、run キーワードを使用してワークフローファイルのシェルコマンドとして使用することもできます。 詳しい情報については「GitHub Actionsのワークフローコマンド」を参照してください。

デフォルトの環境変数

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

環境変数説明
CI常にtrueに設定されます。
GITHUB_WORKFLOWワークフローの名前。
GITHUB_RUN_IDリポジトリ内でユニークな各実行に対する番号。 この番号は、ワークフローの実行をやり直しても変化しません、
GITHUB_RUN_NUMBERリポジトリ内の特定のワークフローの各実行に対するユニークな番号。 この番号は、ワークフローの最初の実行時に1で始まり、新たな実行ごとにインクリメントされます。 この番号は、ワークフローの実行をやり直しても変化しません、
GITHUB_JOBThe job_id of the current job.
GITHUB_ACTIONアクションの一意の識別子 (id)。
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_WORKSPACEGitHubワークスペースディレクトリのパス。 ワークフローで actions/checkout アクションを使用する場合、ワークスペースディレクトリはリポジトリのコピーです。 actions/checkoutアクションを使用していない場合、ディレクトリは空となります。 たとえば、/home/runner/work/my-repo-name/my-repo-nameとなります。
GITHUB_SHAワークフローをトリガーしたコミットSHA。 たとえば、ffac537e6cbbf934b08745a378932722df287a53です。
GITHUB_REFワークフローをトリガーしたブランチまたはタグref。 たとえば、refs/heads/feature-branch-1です。 イベントタイプのブランチもタグも利用できない場合、変数は存在しません。
GITHUB_HEAD_REFPull Requestのイベントに対してのみ設定されます。 headブランチの名前です。
GITHUB_BASE_REFPull Requestのイベントに対してのみ設定されます。 ベースブランチの名前です。
GITHUB_SERVER_URLGitHub AE サーバーの URL を返します。 For example: https://github.com.
GITHUB_API_URLAPI URL を返します。 For example: https://api.github.com.
GITHUB_GRAPHQL_URLグラフ QL API の URL を返します。 For example: https://api.github.com/graphql.

ノート: ワークフローの実行の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は環境変数のプレフィックスのGITHUB_を、GitHubの内部的な利用のために予約しています。 GITHUB_プレフィックスを使用して環境変数またはシークレットを設定すると、エラーになります。

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

Did this doc help you?

Privacy policy

Help us make these docs great!

All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.

Make a contribution

OR, learn how to contribute.