blog.sharoo.org

CI/CDってなんだ?

Q1: CI/CDを回すって具体的にどういうこと?

A: コードの変更を自動的にテスト・ビルド・デプロイする仕組みを動かし続けることです。

具体的な流れ:

  • CI(継続的インテグレーション): コードをPush → 自動テスト実行 → 結果通知
  • CD(継続的デリバリー/デプロイ): mainブランチにマージ → 自動ビルド → 本番環境へ自動デプロイ

「回す」= 開発サイクルの中で繰り返し自動実行し続けるという意味。手作業を自動化して開発速度を上げるのが目的。


Q2: 実装の第一段階は?

A: まずGitHubにPushしたら自動テストが走る仕組みを作るのが第一段階。その後、AWSなどへの自動デプロイを追加していく。

段階的な進め方:

  1. 第1段階(CI): Push時に自動テスト実行
  2. 第2段階(CD): mainブランチマージ時に自動デプロイ(AWS S3/ECS/Lambdaなど)

いきなり全部やろうとせず、段階的に進めるのが王道パターン。


Q3: 手元でテストするのと何が違うの?

A: 主に3つの違いがあります。

1. 環境の統一

  • 手元: 個人のPC環境(Mac/Windows、バージョン違い)→「俺の環境では動く」問題
  • CI: クリーンなLinux環境で毎回実行 → 誰でも同じ条件

2. 実行の強制

  • 手元: 開発者がサボったり忘れたりできる
  • CI: Push時に必ず自動実行、テスト失敗でマージをブロック可能

3. 複数パターンの同時テスト

  • 手元: 1つの環境のみ
  • CI: 複数のNode.jsバージョン × 複数のOSで並行テスト可能

チーム開発での価値: テスト漏れやバグの混入を防ぎ、品質を保てる