Continuous Integration (CI) ist ein Entwicklungsprozess oder eine Methode, bei der das Gesamtsystem regelmäßig und reproduzierbar neu gebaut wird.
Codeänderungen werden dabei automatisiert in den Build-Prozess des Softwareprojekts aufgenommen. Ein Build- und Testsystem verifiziert diese Änderungen und misst die Softwarequalität, ohne jedoch den Code selbst zu verändern. Häufig tritt CI zusammen mit Continuous Deployment/Delivery (CD) als CI/CD auf.
Ziele
1. Fehler frühzeitig erkennen
Durch das häufige Testen und Integrieren werden Mängel und Fehler frühzeitig erkannt und behoben.
2. Vermeidung von Integrationsproblemen
Die regelmäßige Integration verringert die Wahrscheinlichkeit von Konflikten und Problemen.
3. Schnelles Feedback
Die Entwickler:innen erhalten schnell Feedback zu ihren Änderungen. Das soll die Entwicklungszeit verkürzen.
4. Lauffähiger Stand verfügbar
Die CI sorgt durch kontinuierliche Rückmeldungen dafür, dass das Projekt bzw. Repository in einem lauffähigen Zustand bleibt. Wenn Codeelemente Probleme verursachen, werden Entwickler:innen unmittelbar benachrichtigt und können gezielt Korrekturen vornehmen.
5. Automatisierte Test
Ein wesentlicher Bestandteil von CI sind automatisierte Tests. Sie stellen sicher, dass neue Änderungen keine bestehenden Funktionen beeinträchtigen. Diese Tests umfassen Unit-Tests, Integrationstests und manchmal auch End-to-End-Tests.
6. Kontinuierliche Überwachung
CI-Systeme überwachen kontinuierlich den Status des Builds und der Tests. Bei Fehlern werden die Entwickler:innen sofort benachrichtigt, sodass sie schnell reagieren können.