Skip to content
Latchkey

GitHub Actions の workflow_call とは?

workflow_call は、ワークフローを他のワークフローから呼び出せるようにするトリガーで、再利用可能なワークフローに変えます。

再利用可能なワークフローは、呼び出せることを宣言する必要があります。workflow_call イベントはまさにそれを行い、別のワークフローが呼び出す際に受け付ける input と secret を定義します。

概要

on: の下で宣言されるトリガーで、他からの呼び出しに向けてワークフローを公開します。呼び出し側がどの inputssecrets を渡す必要があるか、または渡せるかという契約を定義します。

Declaring workflow_call
on:
  workflow_call:
    inputs:
      env:
        required: true
        type: string
    secrets:
      token:
        required: true

仕組み

呼び出し側はジョブの uses: でワークフローを参照し、with: で input を、secrets: で secret を渡します。GitHub は宣言された契約に従い、呼び出される側のジョブを呼び出し側の実行の一部として実行します。

input と secret

input は型付きで、必須にも、デフォルト付きの任意にもできます。secret は明示的に渡す (または secrets: inherit で継承する) 必要があり、呼び出される側が呼び出し側の secret を暗黙に読み取ることはできません。

重要な理由

workflow_call は再利用可能なワークフローの基盤であり、チームが共有 CI ロジックを各リポジトリにコピーする代わりに、集中管理してバージョン管理できるようにします。

関連する概念

これは再利用可能なワークフローを再利用可能にするものであり、手動実行のための workflow_dispatch とは別物です。

重要なポイント

  • workflow_call はワークフローを他から呼び出せるようにします。
  • 型付きの input と必須の secret を定義します。
  • 再利用可能なワークフローの土台となります。

関連ガイド