Übersicht
Continuous Integration ist ein DevOps-Verfahren in der Software-Entwicklung, bei der Entwickler alle Codeänderungen regelmäßig in einem zentralen Repository zusammenführen. Diese Änderungen werden dann automatisiert erstellt und getestet. Mit der Continuous Integration wird meist die Erstellungs- oder Integrationsphase eines Softwareeinführungs-Prozesses beschrieben. Sie enthält eine automatisierte Komponente (z. B. einen CI- oder Erstellungsdienst) und eine menschliche Komponente (z. B. die Erkenntnis, dass sich regelmäßige Integrationen positiv auswirken). Die Hauptziele der Continuous Integration bestehen darin, Bugs schneller zu entdecken und zu beheben, die Software-Qualität zu optimieren und den Zeitraum zu minimieren, in dem neue Software-Aktualisierungen validiert und eingeführt werden.
Wozu benötigt man Continuous Integration?
In der Vergangenheit haben die Entwickler eines Teams meist isoliert an ihren Aufgaben gearbeitet und ihre Änderungen erst dann an der Hauptverzweigung zusammengeführt, wenn sie abgeschlossen waren. So wurde das Zusammenführen von Codeänderungen schwierig und zeitaufwändig, und es konnten sich langfristig Bugs ohne Korrekturen ansammeln. Diese Faktoren erschwerten die Bereitstellung von Aktualisierungen für Kunden erheblich.
Wie funktioniert Continuous Integration?
Bei der Continuous Integration führen Entwickler regelmäßig einen Commit in einem gemeinsam genutzten Repository durch. Dafür wird ein Versionskontrollsystem wie Git verwendet. Vor jeder Durchführung eines Commit können Entwickler lokale Einheitstests für ihren Code durchführen. Sie erhalten dadurch eine zusätzliche Überprüfungsebene vor der Integration. Ein Continuous Integration-Dienst erstellt automatisch Einheitentests für neue Codeänderungen und führt diese aus, um ggf. vorhandene Fehler sofort aufzudecken.
Continuous Integration bezieht sich auf die Erstellungs- und Einheitstestphase während eines Software-Einführungsprozesses. Jede bestätigte Neuerung löst eine automatische Erstellung und einen automatischen Test aus.
Mit Continuous Delivery werden Codeänderungen automatisch erstellt, getestet und für die Produktionseinführung getestet. Die kontinuierliche Delivery ist eine Erweiterung der Continuous Integration. Dabei werden alle Codeänderungen nach dem Entwurf in einer Test- und/oder Produktionsumgebung bereitgestellt.