GitHub Actions のコンテキストとは?
コンテキストは github、env、matrix、secrets などの実行データを構造化してまとめたもので、エクスプレッションの中で読み取ります。
workflow は自分自身について知る必要があります。どの branch か、どのイベントか、どの input か。コンテキストはそうした情報を、${{ }} エクスプレッションの中で参照できるオブジェクトとして公開します。
概要
コンテキストは実行や環境に関するデータを保持する名前付きオブジェクトです。例として github(イベントと repo のデータ)、env(変数)、secrets、matrix、needs、inputs があります。
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 によるデータフローを支えます。
重要なポイント
- コンテキストは実行データを持つ構造化オブジェクトです。
- 代表的なものは
github、env、secrets、matrix、needsです。 - エクスプレッション内でドット記法によりフィールドを読み取ります。
関連ガイド
What Is an Expression in GitHub Actions?An expression in GitHub Actions is logic inside ${{ }} that evaluates contexts, functions, and operators to c…
What Is the needs Keyword in GitHub Actions?The needs keyword makes one job wait for another to finish, creating a dependency graph and giving access to…
What Is a Job Output in GitHub Actions?A job output is a value a job exposes so dependent jobs can read it through the needs context, passing data a…
What Is a GitHub Actions Secret?A GitHub Actions secret is an encrypted variable for sensitive values like API keys, available to workflows a…