【けいぞくてきいんてぐれーしょん】

継続的インテグレーション(CI) とは?

最終更新:
💡 「こまめに統合、自動でテスト」

開発者が小さな変更を共有の主なブランチへ頻繁に統合し、自動ビルドとテストで統合の問題を早く見つける開発プラクティス。CIツールを動かすことに加え、こまめに統合する習慣が重要。

📌 このページのポイント
小さく統合し、自動で確かめる 開発者の変更 小さな単位で こまめに統合 共有ブランチ チームの変更を合わせる 統合したコードを自動検証 ビルド・テスト 必要に応じて解析なども実行 × 失敗 原因を調べ、修正 または変更を取り消す ✓ 成功 実行した検査を通過 全バグ不在の保証ではない 共有ブランチへの頻繁な統合と、自動検証を組み合わせる
CIはこまめな統合と検証の習慣。作業ブランチだけを自動テストしても、チームの変更同士が統合できているかは分からない。
ひよこ ひよこ
なぜ「こまめに」統合するの?
ペンギン先生 ペンギン先生
長く別々に変更をためると、合わせたときの原因調査や修正が複雑になりやすいからだよ。小さな変更を、少なくとも毎日など短い間隔で統合して確かめるんだ。衝突やバグがなくなるわけではないけど、早く気づいて対処しやすくなるよ。
ひよこ ひよこ
CIパイプラインには何を入れる?
ペンギン先生 ペンギン先生
基本はビルドと自動テストだよ。必要に応じてコードの書式や静的解析、セキュリティの検査も加える。短時間で結果を返す検査と時間がかかる検査を分けるなど、問題の発見と待ち時間のバランスを考えるんだ。
ひよこ ひよこ
CIが失敗したらどうする?
ペンギン先生 ペンギン先生
失敗の原因を調べ、優先して正常な状態へ戻すよ。すぐ修正できなければ原因の変更を取り消して、別の場所で調べる方法もあるんだ。成功の表示は実行した検査を通ったという意味で、すべてのバグがない保証ではないよ。
ひよこ ひよこ
CI/CD/CDの3つの違いは?
ペンギン先生 ペンギン先生
CIはこまめな統合と自動検証。Continuous Deliveryは必要なときに本番へ出せる状態を保ち、公開するかは判断できること。Continuous Deploymentは検証を通った変更を自動で本番へ出すことだよ。Deliveryで必ず人が承認ボタンを押す、と決まっているわけではないんだ。
ひよこ ひよこ
ツールで作業ブランチをテストしていればCIなの?
ペンギン先生 ペンギン先生
それも便利だけど、変更を長く別々のブランチに置いたままでは、チームの変更が統合できているかは分からないよ。共有の主なブランチへ頻繁に合わせ、その結果を検証するところまでがCIの大切な点なんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「CI」って出てきたら「小さくこまめにコードを統合し、自動検証で問題を早く見つける習慣」と思えばだいたいOK!
📖 おまけ:英語の意味
「Continuous Integration」 = 継続的統合
💬 Continuousは「継続的な」、Integrationは「統合」。チームの変更をこまめに合わせ、検証することだよ

参考資料

← 用語集にもどる