„Continuous Integration“ (CI) beschreibt den Prozess des fortlaufenden Zusammenfügens von Softwarekomponenten zu einer Anwendung im Rahmen einer Softwareentwicklung. Das Ziel der kontinuierlichen Integration ist die Steigerung der Softwarequalität.
Bei der klassischen Softwareentwicklung arbeiten mehrere Entwickler an unterschiedlichen Features der gleichen Anwendung. Die gleichzeitige Zusammenführung aller „Quellcode-Branches“ (ein Entwicklungszweig nach der Aufspaltung eines Projektes in zwei oder mehrere Folgeprojekte; die Quelltexte oder Teile davon werden hierbei unabhängig vom ursprünglichen Mutterprojekt weiterentwickelt) an einem Tag, dem „Merge Day“, kann einen hohen Arbeits- und Zeitaufwand bedeuten. Der Grund dafür ist, dass Anwendungsänderungen von getrennt arbeitenden Entwicklern miteinander in Konflikt geraten können, wenn sie zeitgleich durchgeführt werden. Mithilfe der Continuous Integration können Entwickler ihre Codeänderungen in einem gemeinsamen „Branch“ der Anwendung viel häufiger zusammenführen, manchmal sogar täglich. Sobald die Änderungen eines Entwicklers zusammengeführt werden, werden sie in automatischen App-Builds (die Entwicklungsstufe einer Software vor Freigabe einer neuen Version) und unterschiedlichen Stufen von Automatisierungsprüfungen (normalerweise Einheits- und Integrationstests) validiert. So wird sichergestellt, dass die Funktionsfähigkeit nicht beeinträchtigt wurde. Dabei müssen alle Klassen und Funktionen bis hin zu den verschiedenen Modulen der Anwendung getestet werden. Wenn die automatische Prüfung Konflikte zwischen aktuellem und neuem Code erkennt, lassen sich diese mithilfe von CI schneller und häufiger beheben.
Typische Aktionen bei der CI sind das automatisierte Übersetzen und Linken der Anwendungsteile. Prinzipiell können aber auch beliebige andere Operationen zur Erzeugung abgeleiteter Informationen durchgeführt werden. Üblicherweise wird dafür nicht nur das Gesamtsystem neu gebaut, sondern es werden auch automatisierte Tests durchgeführt und Softwaremetriken zur Messung der Softwarequalität erstellt. Der gesamte Vorgang wird durch Einchecken in die Versionsverwaltung automatisch ausgelöst.
Eine Weiterentwicklung der kontinuierlichen Integration stellt die Continuous Delivery dar (siehe dort). Dabei wird in bestimmten Zeitabständen oder bei Erreichen einer bestimmten Qualitätsmetrik eine neue Version der Software ausgeliefert.