継続的インテグレーション(CI)はビルド、テスト、デプロイを自動化するための方法です。
CIを正しくセットアップすると、自動テストにより手動で動作確認するよりもデプロイにかかる時間を大幅に縮小できます。ソースコードはプロジェクトが進めば変わっていきます。CIをユニットテスト、インテグレーションテストと連携することで、コードの編集によりアプリケーションが壊れる心配は無くなるでしょう。
以下の図は、継続的インテグレーションとデプロイの役割を表したものです。
上の図ではレポジトリに新しいコードがコミットされたら、新しいコードをビルドするように、CIサーバに通知が送られます。(通知を送ることができないCIサーバの場合、レポジトリサーバを定期的にチェックする必要があります。)
CIサーバはコードを取り込みビルドとテストを行います。全てのテストが成功したらデプロイプロセスを始めます。デプロイが始まるとサーバへ新しいコードが取り込まれ、サービスの再起動や他のデプロイプロセスを行った後、デプロイプロセスが完了します。
CIサーバとデプロイのプロセスの構成方法は様々な形式があります。上で説明したセットアップはシンプルな構成例の一つでしかありません。