変更要約: GH-200 第2章を新規作成(実行結果の解釈とトラブルシュート=トリガー/状態・ログ/アノテーション/実行履歴・ACTIONS_STEP_DEBUG・YAMLアンカー展開・matrix読み取りと個別再実行・ログ/アーティファクトのUI/API取得、テンプレートと再利用=スターターWF/再利用可能WF/コンポジットアクションの違い・組織/非公開テンプレート・無効化と削除)
2.2テンプレートと再利用 — スターター・再利用可能ワークフロー・コンポジット
組織レベルのワークフローテンプレート(スターターワークフロー)と再利用可能ワークフロー(workflow_call)の使い分け、非公開(組織内)テンプレートの利用、スターターワークフロー・再利用可能ワークフロー・コンポジットアクションの違い、そしてワークフローの無効化と削除の違いを理解します。
同じパイプラインを何度も書かないために、GitHub には複数の 再利用の仕組み があり、GH-200 ではそれぞれの違いと使い分けが問われます。最もよく混同されるのが、スターターワークフロー・再利用可能ワークフロー・コンポジットアクション の 3 つです。要点は「コピーして独立するのか、中央定義を呼ぶのか、ステップをアクションに束ねるのか」という違いにあります。
2.2.13 つの再利用方法の違い
スターターワークフロー(starter workflow) は、新しいワークフローを作るときの 雛形(テンプレート) です。組織の .github リポジトリに置くと、メンバーが「新しいワークフロー」画面から選んでコピーできます。コピー後は 独立 し、元を変えても各リポジトリには波及しません(最初の足場用)。一方 再利用可能ワークフロー(reusable workflow) は on: workflow_call を持つ 中央の定義 で、呼び出し側が uses: で参照します。元を更新すれば(参照する ref により)呼び出し側に反映され、バージョン管理された一元定義 として機能します。コンポジットアクション(composite action) は、複数のステップを 1 つの アクション にまとめたもので、ワークフローの 1 ステップ(uses:)として呼び出します。
| 仕組み | 正体 | 更新の波及 | 呼び出し |
|---|---|---|---|
| スターターワークフロー | 新規作成用の雛形 | コピー後は独立(波及なし) | UI でコピー |
| 再利用可能ワークフロー | on: workflow_call の中央定義 | 参照 ref に応じて波及 | uses: でワークフロー全体を呼ぶ |
| コンポジットアクション | 複数ステップを束ねたアクション | 参照 ref に応じて波及 | uses: で 1 ステップとして |
2.2.2組織レベル・非公開テンプレートの消費
組織は、スターターワークフローと再利用可能ワークフローを 組織内(非公開) で共有できます。スターターワークフローは組織の .github リポジトリ の workflow-templates に置き、メンバーが選んで使います。再利用可能ワークフローは、組織内のプライベートリポジトリ にあるものを他リポジトリから呼び出せるよう アクセス(共有)設定 を有効にして消費します。これにより、公開せずに社内標準のパイプラインを配布・統制できます。
2.2.3ワークフローの無効化と削除
ワークフローを止めたいとき、無効化(disable) と 削除(delete) は意味が異なります。無効化は、ワークフローファイルを残したまま 一時的に実行を止める もので、UI から再度 有効化 できます(メンテナンスや一時停止に好適)。削除はファイル/履歴に対する破壊的操作で、元に戻すには再作成が必要です。「しばらく動かしたくないだけ」なら無効化、「もう不要」なら削除、と使い分けます。
頻出:
①スターターワークフロー=新規作成の雛形(コピー後は独立・波及なし)。組織の .github リポジトリの workflow-templates に配置。
②再利用可能ワークフロー=on: workflow_call の中央定義を uses: で呼ぶ(波及あり・バージョン管理)。
③コンポジットアクション=複数ステップを束ねたアクション(1 ステップとして uses:)。
④組織内の非公開共有はアクセス設定が必要。
⑤一時停止=無効化(再有効化可)、不要=削除。
混同・注意:
①スターターワークフローはコピーして独立——元を直しても各リポジトリには反映されない(中央更新したいなら再利用可能ワークフロー)。
②再利用可能ワークフロー(ワークフロー全体を呼ぶ)とコンポジットアクション(1 ステップ)を取り違えない。
③無効化は実行停止でファイルは残る——削除と混同しない。
④非公開の再利用にはアクセス(共有)設定の有効化が必要。
2.2.4この節のまとめ
- スターターワークフロー=新規作成の雛形(コピー後独立)、組織の .github リポジトリで配布
- 再利用可能ワークフロー=on: workflow_call の中央定義を uses: で呼ぶ(波及・バージョン管理)
- コンポジットアクション=複数ステップを束ねたアクション(1 ステップとして利用)
- 非公開共有はアクセス設定が必要。一時停止は無効化(再有効化可)、不要なら削除
進捗の記録にはログインが必要です。
理解度チェック
(軽い確認用)Q1. 組織で標準の CI ロジックを 1 か所で管理し、更新すると参照する全リポジトリに反映させたいです。どの仕組みを使いますか?
Q2. チームが新しいワークフローを作るときの「出発点となる雛形」を組織全体に提供したいです。どれが適切ですか?
Q3. 複数のワークフローで繰り返す「セットアップ→ビルド→キャッシュ」の数ステップを、1 つの再利用可能な単位にまとめてワークフローの 1 ステップとして使いたいです。どれが適切ですか?
Q4. あるワークフローをメンテナンス中だけ一時的に実行停止し、後で元に戻したいです(履歴やファイルは残したい)。どうしますか?
Q5. 組織内のプライベートリポジトリにある再利用可能ワークフローを、別のリポジトリから呼び出せるようにするには何が必要ですか?
Q6. スターターワークフローと再利用可能ワークフローの本質的な違いとして正しいものはどれですか?

