実践記事

GitHub Actions完全ガイド|CI/CDパイプラインを最初から構築する方法

4分で読めます
Tech Study Work編集部
GitHub ActionsCI/CD自動化DevOpsデプロイ
GitHub Actions完全ガイド|CI/CDパイプラインを最初から構築する方法

GitHub ActionsとCI/CDの基礎概念

CI/CD(継続的インテグレーション/継続的デリバリー)は、コードの変更をトリガーとして自動的にテスト・ビルド・デプロイを行う開発プラクティスです。GitHub Actionsは2019年にGitHubが提供を開始したCI/CDサービスで、GitHubリポジトリとのシームレスな統合・無料枠の充実・大量のサードパーティActionにより、2025年現在最も広く使われているCI/CDツールです。

GitHub ActionsのCI/CDを導入するメリット:
・コードのプッシュ時に自動テストが実行されバグを早期発見できる
・手動デプロイのミス・忘れがなくなる
・PR時の自動チェックでコードレビューの品質が向上する
・インフラ設定をコードとして管理できる(GitOps)

GitHub Actionsの基本概念とYAML構文

GitHub Actionsの主要な概念を解説します。

ワークフロー(Workflow):.github/workflows/ディレクトリに置くYAMLファイルで定義されます。

トリガー(on):ワークフローを実行するタイミングです。
・push:ブランチへのプッシュ
・pull_request:PR作成・更新時
・schedule:cronで定期実行
・workflow_dispatch:手動実行
・release:リリース公開時

ジョブ(jobs):並列または順次実行できる処理の単位です。

ステップ(steps):ジョブ内で実行する各コマンド・Action。

アクション(uses):再利用可能なコンポーネント。GitHub MarketplaceからActionsを使えます(actions/checkout・actions/setup-node等)。

この記事を読んでいるあなたへ

具体的なサービス選びで迷っているなら、編集部が厳選した比較記事もご参考ください。

AIツールを比較する →

基本的なCI(テスト・Lint)ワークフローの実装

PRのたびにテストとLintを自動実行するCIワークフローの例を解説します。

基本的なNode.js CIワークフロー:
name: CI
on: pull_request
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm'
- run: npm ci
- run: npm run lint
- run: npm run type-check
- run: npm test

キャッシュの活用:
setup-nodeのcache: 'npm'でnpm installのキャッシュが有効になり、2回目以降の実行が大幅に速くなります。

CDワークフロー|Vercelへの自動デプロイ

mainブランチへのマージ時にVercelに自動デプロイするCDワークフローの設定を解説します。

Vercel + GitHub Actionsの連携方法:
①Vercelのプロジェクト設定でGitHubの自動デプロイを無効化(手動管理するため)
②VERCEL_TOKEN・VERCEL_ORG_ID・VERCEL_PROJECT_IDをGitHubのSecretsに追加
③mainブランチへのpushをトリガーにdeploy-productionジョブを実行
④プレビューデプロイはPR時にdeploy-previewジョブで実行

高度なワークフロー|マトリックス・キャッシュ・セキュリティ

より高度なGitHub Actionsの活用テクニックを紹介します。

マトリックス戦略(複数環境でのテスト):
strategy.matrix を使うことで、Node.js 18/20/22など複数バージョン・OS(ubuntu/windows/macos)での並列テストが簡単に設定できます。

Secretsの管理:
APIキー・デプロイトークンなどの機密情報はGitHubのRepository Settings→Secretsに登録し、${{ secrets.SECRET_NAME }}でワークフローから参照します。絶対にYAMLファイルに直書きしないでください。

依存関係の脆弱性スキャン:
npm auditやDependabotを使って依存パッケージの脆弱性を定期的にスキャンします。GitHub Dependabotを有効化することで、脆弱性のある依存関係を自動的にPRで更新できます。

関連する比較記事

この記事に関連するサービス比較をチェック

CI/CD自動化でより速くリリースしよう

GitHub ActionsとAIコーディングツールを組み合わせて、開発から本番デプロイまでのサイクルを加速しましょう。

AIコーディングツールを比較する

よくある質問

この記事をシェアする