Welcome to Tech Athletes | テック・アスリート   Click to listen highlighted text! Welcome to Tech Athletes | テック・アスリート

【2026年版】GitHub Actions CI/CD完全ガイド|自動テスト・デプロイを0から構築する実践解説

GitHub Actionsは、GitHubに統合されたCI/CDプラットフォームです。コードのプッシュやPull Requestをトリガーに、テスト・ビルド・デプロイを自動化できます。本記事では、実務で即使えるワークフローの書き方を解説します。

GitHub Actionsの基本概念

  • ワークフロー(Workflow):自動化のプロセス全体。YAMLファイルで定義
  • ジョブ(Job):ワークフロー内の独立した処理単位
  • ステップ(Step):ジョブ内の個々のタスク
  • アクション(Action):ステップで使用する再利用可能な処理
  • ランナー(Runner):ワークフローを実行するサーバー環境
  • トリガー(Trigger):ワークフローを起動するイベント

主要なトリガーイベント一覧

トリガー説明使用場面
pushコードプッシュ時CI実行、ブランチ保護
pull_requestPR作成・更新時コードレビュー前のチェック
releaseリリース作成時本番デプロイ
schedule定期実行夜間テスト、依存関係更新
workflow_dispatch手動実行臨時のデプロイ、メンテナンス
workflow_call他のワークフローから呼び出し再利用可能なワークフロー

実践:Node.js + PostgreSQLアプリのCI設定

以下は、Node.jsアプリとPostgreSQLを使ったプロジェクトのCI設定の完全サンプルです。

name: Node.js CI

on:
  push:
    branches: [main, develop]
  pull_request:
    branches: [main]

jobs:
  test:
    runs-on: ubuntu-latest
    
    services:
      postgres:
        image: postgres:16-alpine
        env:
          POSTGRES_USER: testuser
          POSTGRES_PASSWORD: testpass
          POSTGRES_DB: testdb
        options: >-
          --health-cmd pg_isready
          --health-interval 10s
          --health-timeout 5s
          --health-retries 5
        ports:
          - 5432:5432
    
    steps:
      - uses: actions/checkout@v4
      
      - uses: actions/setup-node@v4
        with:
          node-version: 20
          cache: npm
      
      - run: npm ci
      
      - name: Run migrations
        run: npm run db:migrate
        env:
          DATABASE_URL: postgresql://testuser:testpass@localhost:5432/testdb
      
      - name: Run tests
        run: npm test -- --coverage
        env:
          DATABASE_URL: postgresql://testuser:testpass@localhost:5432/testdb
          NODE_ENV: test
      
      - name: Upload coverage
        uses: codecov/codecov-action@v4

Secretsの安全な管理方法

APIキー、パスワード、SSHキーなどの機密情報は、GitHubのSecretsに登録して環境変数として参照します。リポジトリの「Settings」→「Secrets and variables」→「Actions」から登録できます。

  • ワークフロー内では ${{ secrets.SECRET_NAME }} で参照
  • Environmentごとに異なるSecretsを設定可能(staging/production分離)
  • Organization levelのSecretsも設定可能(複数リポジトリで共有)
  • GitHub Environmentsで承認フローを設定できる

キャッシュ戦略でビルドを3倍高速化

actions/cacheを使うことで、npm installやDockerビルドの時間を大幅に削減できます。適切なキャッシュ設定で、ビルド時間を5分から1.5分に短縮した事例もあります。

GitHub Actionsのコスト最適化

  • 無料枠の活用:パブリックリポジトリは無制限、プライベートは月2,000分
  • self-hostedランナーの活用:自社サーバーを使えばコスト大幅削減
  • 並列実行と条件実行:不要なジョブをスキップして無駄を省く
  • matrix戦略:複数環境のテストを効率的に並列実行

まとめ:GitHub ActionsでDevOpsを自動化しよう

GitHub Actionsは設定が比較的シンプルで、GitHubとのネイティブ統合により高速にCI/CDを構築できます。本記事で紹介したサンプルをベースに、自分のプロジェクトに合わせてカスタマイズしてみてください。

CI/CDの自動化は最初の設定コストこそかかりますが、一度構築すれば開発者がテストやデプロイのことを気にせずコーディングに集中できる環境が整います。チーム開発での生産性向上効果は絶大です。

投稿者 kasata

IT企業でエンジニアとして勤務後、テクノロジー情報メディア「Tech Athletes(テック・アスリート)」を運営。プログラミング、クラウドインフラ(AWS/GCP/Azure)、AI活用、Webサービス開発を専門とする。エンジニア・ビジネスパーソン向けに、実際に使ってみた経験をもとに信頼できる技術情報を発信中。資格:AWS認定ソリューションアーキテクト、Python 3 エンジニア認定試験合格。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Click to listen highlighted text!