GitHubActions

GitHub Actions テンプレート活用ガイドと workflow_call 事例

ⓘ本ページはプロモーションが含まれています

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


スポンサードリンク

GitHub Actions のテンプレート概念と活用シーン

GitHub Actions の ワークフローテンプレート は、組織内で共通化した CI/CD 手順を「設計図」として管理できる仕組みです。
同一のビルド・テスト・デプロイ手順を複数リポジトリに展開すると、設定ミスやバージョン差異が発生しやすくなりますが、テンプレート化することで 保守コストの削減標準化された品質 を実現できます。

テンプレートを導入するメリット

項目 内容
再利用性 workflow_call で呼び出すだけで同一ロジックを他リポジトリでも使用可能
一元管理 テンプレート側の変更が即座に全プロジェクトへ反映され、バージョン管理が容易になる
誤設定防止 メタデータ (action.yml) に入力項目や権限を明示できるため、UI/CLI からの作成時にチェックが走る

テンプレートの作成とメタデータ

テンプレートはリポジトリの .github/workflow-templates/ 配下に配置します。
GitHub が期待するファイル構成は次の通りです(※2024‑04 の公式仕様)【1】:

  • action.yml は必須です。inputs.yml のような別ファイルはサポートされていません。
  • README.md に記載された情報は GitHub UI の「Add workflow → Use a template」画面で自動的に表示されます。

action.yml の最小例


公式 starter‑workflows と workflow_call の組み合わせ

GitHub が提供する actions/starter-workflows リポジトリは、最新ランナーイメージやベストプラクティスに沿ったテンプレートが揃っています【2】。
これらをそのまま workflow_call 用に流用すれば、ゼロから書く手間を大幅に削減できます。

starter‑workflows リポジトリからテンプレートを取得する手順

  1. リポジトリをクローン
    bash
    gh repo clone actions/starter-workflows
  2. 必要なディレクトリ(例: nodejs, java, docker)から main.yml と同名の README をコピーし、上記テンプレート構成に合わせて配置する。
  3. コピー後は action.yml を追加し、inputspermissions を自組織向けに調整する。

Tip:GitHub Docs の「[Organization workflow templates]」ページでは UI からテンプレートを作成・管理する手順が詳細に掲載されています【3】。

workflow_call の基本構文と実装例

以下は最小限の再利用可能ワークフローです。action.yml に入力項目を定義し、呼び出し側からバージョンだけ差し替えて使用します。

呼び出し側の記述は次のとおりです。


組織全体でのテンプレート共有

共有テンプレートリポジトリの作り方

  1. .github リポジトリを作成(例: org/.github
  2. 公開・プライベートは組織のポリシーに合わせる。
  3. 先ほど示したディレクトリ構成でテンプレートを配置する。

  1. main ブランチにプッシュすると、組織内のすべてのリポジトリで 「Add workflow → Use a template」 が自動的に有効化されます【4】。

GitHub UI からテンプレートを追加する手順

  1. 対象リポジトリの Actions タブを開く。
  2. 「New workflow」→画面下部の “Use a template” をクリック。
  3. 表示された一覧から目的のテンプレート(例: Node.js Build)を選択し、Create this workflow を押すだけで .github/workflows/ に YAML が生成されます。

GitHub CLI (gh) でテンプレートをコピーする方法

CLI だけで UI と同等のテンプレート選択は現時点(2024‑04)では提供されていませんが、上記スクリプトを自動化すれば新規リポジトリ作成時に一括適用できます。


実践サンプルテンプレートとローカル検証

以下の 3 つのサンプルは実務で頻繁に使われるシナリオです。どれも workflow_call に対応しているので、他プロジェクトから簡単に呼び出せます。

1. テスト・ビルド(Node.js / Java)

2. Docker イメージ作成・プッシュ

3. リリース自動化

act でローカル検証する手順

  1. インストール(Homebrew 推奨)
    bash
    brew install act
  2. シークレットファイルを作成.secrets
    text
    REGISTRY_TOKEN=ghp_XXXXXXXXXXXXXXXXXXXX
    GH_TOKEN=ghp_YYYYYYYYYYYYYYYYYYYY
  3. 対象ジョブだけ実行
    bash
    act -j build-and-push --secret-file .secrets
  4. デバッグ情報が必要なときは -v オプションを付与。

ローカルでのシミュレーションにより、PR マージ前にワークフローの挙動や依存関係エラーを早期に検出できます。


テンプレートの保守・セキュリティベストプラクティス

バージョン管理と Dependabot の設定例

  • directory をテンプレート格納パスに限定することで、他ワークフローへの影響を防ぎます。
  • Pull Request が作成されたらレビューと自動テスト(例: act test) を走らせ、本番ブランチへマージします。

最小権限での GITHUB_TOKEN 設定例

  • デフォルトでは GITHUB_TOKEN はリポジトリ全体に書き込み権限があります。
  • permissions: キーで 最小権限 を明示すると、意図しない操作や漏洩リスクを低減できます【5】。

シークレットと環境ごとの管理例

  • 環境ごとのシークレット を利用すれば、ステージングと本番で異なる資格情報を安全に切り替えられます。
  • PR テンプレートに「シークレットは secrets. 経由か?」というチェック項目を追加すると、レビュー時の抜け漏れ防止につながります。

まとめ

GitHub Actions のテンプレート機能は 再利用性・保守性・セキュリティ を同時に高める強力なツールです。
1. .github/workflow-templates/ 配下に action.yml と本体の main.yml を置き、メタデータで UI/CLI から使えるようにする。
2. 公式 starter‑workflows リポジトリをベースにしつつ、組織固有の入力項目や最小権限設定を追加。
3. .github リポジトリでテンプレートを一元管理し、UI と gh CLI から手軽に適用。
4. Dependabot・permissions: キー・環境シークレットで 継続的なセキュリティ強化 を実現する。

上記の流れとサンプルを参考にすれば、チーム全体で安全かつ高速に CI/CD パイプラインを標準化できるはずです。


参考リンク

  1. GitHub Docs – Creating a workflow template
    https://docs.github.com/ja/actions/using-workflows/creating-a-reusable-workflow-template
  2. actions/starter‑workflows リポジトリ(GitHub)
    https://github.com/actions/starter-workflows
  3. GitHub Docs – Creating workflow templates for an organization
    https://docs.github.com/ja/actions/using-workflows/creating-a-reusable-workflow-template#creating-an-organization-wide-template-repository
  4. GitHub Docs – Using a workflow template in the UI
    https://docs.github.com/ja/actions/managing-workflow-templates/using-a-workflow-template-in-the-ui
  5. GitHub Docs – Permissions for the GITHUB_TOKEN
    https://docs.github.com/ja/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token
スポンサードリンク

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


-GitHubActions