Skip to content
Latchkey

GitHub Actions のコンテキストとは?

コンテキストは githubenvmatrixsecrets などの実行データを構造化してまとめたもので、エクスプレッションの中で読み取ります。

workflow は自分自身について知る必要があります。どの branch か、どのイベントか、どの input か。コンテキストはそうした情報を、${{ }} エクスプレッションの中で参照できるオブジェクトとして公開します。

概要

コンテキストは実行や環境に関するデータを保持する名前付きオブジェクトです。例として github(イベントと repo のデータ)、env(変数)、secretsmatrixneedsinputs があります。

Reading the github context
steps:
  - run: |
      echo "Repo: ${{ github.repository }}"
      echo "Actor: ${{ github.actor }}"
      echo "Event: ${{ github.event_name }}"

仕組み

エクスプレッションの中でドット記法を使ってコンテキストのフィールドにアクセスします。GitHub は評価前に各コンテキストを埋めるため、その値は現在の実行を反映します。

コンテキストが利用できる場所

すべてのコンテキストがどこでも使えるわけではありません。たとえば secrets は一部のキーでは使えず、matrix は matrix job の中にのみ存在します。各コンテキストの利用可否はドキュメントに一覧があります。

なぜ重要か

コンテキストは workflow が runtime のデータに適応する手段です。イベントによって分岐したり、input を読んだり、job output どうしを結びつけたりします。これらがなければ、YAML は実際に起きたことに反応できません。

関連する概念

コンテキストはエクスプレッションの中で使われ、条件、matrix、そして job 間の needs によるデータフローを支えます。

重要なポイント

  • コンテキストは実行データを持つ構造化オブジェクトです。
  • 代表的なものは githubenvsecretsmatrixneeds です。
  • エクスプレッション内でドット記法によりフィールドを読み取ります。

関連ガイド