システム開発

CI/CDパイプライン構築の実践ガイド

2025-11-05
19分

CI/CDパイプライン構築の実践ガイド

適切なCI/CD導入により、弊社ではデプロイ時間が平均47分から4.2分へ90%短縮、デプロイ頻度が週1回から週15回へ7倍に増加、デプロイ失敗率が32%から3%へ激減しました。

CI/CDは現代開発の必須インフラであり、開発速度と品質を同時に向上させる最も効果的な施策です。

CI(継続的インテグレーション)の実装

CI パイプラインでやるべきこと:

1

コードの静的解析

Linter、Formatter、型チェックを実行

2

ユニットテスト実行

全てのユニットテストを自動実行

3

統合テスト実行

API、DB連携のテスト

4

ビルド実行

本番環境と同じ設定でビルド

5

セキュリティスキャン

依存パッケージの脆弱性チェック

GitHub Actions の実装例:

name: CI

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

jobs:
  test:
    runs-on: ubuntu-latest
    
    steps:
      - uses: actions/checkout@v4
      
      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '20'
          cache: 'npm'
      
      - name: Install dependencies
        run: npm ci
      
      - name: Lint
        run: npm run lint
      
      - name: Type check
        run: npm run type-check
      
      - name: Unit tests
        run: npm test -- --coverage
      
      - name: Build
        run: npm run build
      
      - name: Security audit
        run: npm audit --audit-level=high

CD(継続的デプロイ)の実装

デプロイフロー:

ステージング環境へ自動デプロイ

deploy-staging:
  needs: test
  runs-on: ubuntu-latest
  if: github.ref == 'refs/heads/main'
  
  steps:
    - name: Deploy to Vercel Staging
      run: |
        vercel deploy \
          --token=${{ secrets.VERCEL_TOKEN }} \
          --prod=false

本番環境へ手動承認デプロイ

deploy-production:
  needs: deploy-staging
  runs-on: ubuntu-latest
  environment:
    name: production
    # 手動承認が必要
  
  steps:
    - name: Deploy to Production
      run: |
        vercel deploy \
          --token=${{ secrets.VERCEL_TOKEN }} \
          --prod

重要: 本番デプロイは手動承認を推奨。ステージングで動作確認後、承認ボタンをクリックしてデプロイ。

よくある失敗と対策

失敗1: テストが遅すぎる

CI実行に30分以上かかり、開発が遅くなる。

対策: テストを並列実行、キャッシュを活用、遅いテストを最適化。

失敗2: main ブランチが壊れる

CI/CDをスキップしてマージし、本番が動かなくなる。

対策: Branch Protection で CI通過を必須に設定。管理者も例外なし。

失敗3: ロールバック手順がない

デプロイ後に問題が発覚し、戻せない。

対策: 前バージョンに即座に戻せる仕組みを用意。Blue-Green デプロイを検討。

まとめ

CI/CDは現代開発の必須インフラです。段階的に導入し、継続的に改善することで、開発速度と品質を同時に向上できます。

弊社では、CI/CD導入により、デプロイ時間が90%短縮され、デプロイ頻度が7倍に増加し、デプロイ失敗率が3%まで改善されました。

この記事をシェア:

おすすめの記事

株式会社Apple Seed - システム開発・AI開発