継続的インテグレーション 【CI】 Continuous Integration
概要
継続的インテグレーション(CI)とは、ソフトウェア開発において、ビルドやテストを頻繁に繰り返し行なうことにより問題を早期に発見し、開発の効率化や省力化、納期の短縮などを図る手法。特に、専用のツールを用いてこのプロセスを自動化あるいは半自動化し、効率的に実施すること。分散バージョン管理システムなどを用いて開発している場合によく用いられる手法で、各開発者は定期的、あるいは頻繁に自らの担当するソースコードを中央サーバ(共有リポジトリなど)へ提出・統合する。
中央サーバ側では誰かが変更操作を行う度に(あるいは決まった時間間隔などで)プロジェクト全体のビルドや各モジュールの単体テスト、変更のあったモジュール間の結合テストなどを実施する。
結果は素早くアナウンスされ、また各担当者にフィードバックされる。何らかの不具合が生じた場合には各ビルドの直前に行われた変更や、変更箇所に関連するコードが原因として最も疑わしいため、問題点を早期に発見・修正できる。
手作業でこうしたプロセスを実施することは負担が大きいため、通常はCIツール(CI支援ツール)と呼ばれる自動化ソフトウェアを用いて実施する。近年ではそのようなソフトウェアの機能を提供するクラウドサービスも登場している。
ビルドやテストの後、自動的に利用者の環境へ提供可能な状態に準備する仕組みを「継続的デリバリー」(CD:Continuous Delivery)、実際にテスト環境やステージング環境、本番環境(運用環境)へ自動的に展開・更新する仕組みを「継続的デプロイ」(CD:Continuous Deployment)という。CIとこれらは併用することが多いため、「CI/CD」とまとめて表記されることが多い。
(2020.4.25更新)