GitHub Actions の reusable workflow とは?
reusable workflow は他の workflow から呼び出せる workflow 全体で、共有された CI ロジックを 1 か所にまとめられます。
同じパイプラインをすべての repo にコピーするのは脆弱です。reusable workflow を使うと、workflow を一度定義し、input と secret を渡しながら多くの呼び出し元から呼び出せます。関数を呼ぶのによく似ています。
それは何か
workflow_call トリガーを宣言する workflow です。他の workflow はジョブの uses: フィールドでそれを参照し、input と secret を渡します。
A callable workflow
# .github/workflows/reusable-test.yml
on:
workflow_call:
inputs:
node-version:
type: string
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm testどう動くか
呼び出し元は reusable workflow を path とバージョンで参照し、with: input と secrets: を供給し、GitHub は呼び出される側のジョブを呼び出し元の実行の一部として実行します。
Calling it
jobs:
call-test:
uses: ./.github/workflows/reusable-test.yml
with:
node-version: '20'なぜ重要か
reusable workflow は重複を減らし一貫性を強制します。共有 workflow を一度更新すればすべての呼び出し元が変更を取り込むため、多数のリポジトリで非常に価値があります。
知っておくべき制限
ネストの深さや、1 回の実行がチェーンできる reusable workflow の数には上限があります。input と secret は明示的に渡す必要があり、呼び出される側は呼び出し元の secret を自動的に読み取れません。
関連する概念
reusable workflow は workflow_call イベントに依存し、ジョブ全体ではなくステップをまとめる composite action とは異なります。
重要なポイント
- reusable workflow は別の workflow から
uses:で呼び出されます。 workflow_callトリガーと明示的な input/secret を使います。- repo 間で共有された CI ロジックを一元化します。
関連ガイド
What Is workflow_call in GitHub Actions?workflow_call is the trigger that makes a workflow reusable, allowing other workflows to invoke it and pass i…
What Is a Composite Action in GitHub Actions?A composite action bundles multiple steps into a single reusable action defined in YAML, so you can share ste…
What Is a GitHub Actions Secret?A GitHub Actions secret is an encrypted variable for sensitive values like API keys, available to workflows a…
What Is a GitHub Actions Workflow File?A GitHub Actions workflow is a YAML file in .github/workflows that defines which events trigger automation an…