Continuous integration (CI)

Concept

Was ist das?

Continuous integration, oft abgekürzt als CI, ist die Praxis, Codeänderungen so oft wie möglich zu integrieren. CI ist eine Voraussetzung für Continuous Delivery (CD). Traditionell beginnt der CI-Prozess mit der Übergabe von Codeänderungen an ein Versionskontrollsystem (Git, Mercurial oder Subversion) und endet mit einem getesteten Artefakt, das von einem CD-System übernommen werden kann.

Probleme, die damit gelöst werden

Softwaresysteme sind oft groß und komplex und werden von zahlreichen Entwicklern gewartet und aktualisiert. Wenn sie parallel an verschiedenen Teilen des Systems arbeiten, können diese Entwickler widersprüchliche Änderungen vornehmen und versehentlich die Arbeit der anderen zerstören. Wenn mehrere Entwickler an demselben Projekt arbeiten, müssen außerdem alltägliche Aufgaben wie das Testen und Berechnen der Codequalität von jedem Entwickler wiederholt werden, was Zeit kostet.

Wie es hilft

CI-Software prüft automatisch, ob Codeänderungen sauber zusammengeführt werden, wenn ein Entwickler eine Änderung überträgt. Damit ist es fast schon üblich, den CI-Server für die Überprüfung der Codequalität, für Tests und sogar für die Bereitstellung zu nutzen. Damit wird CI zu einer konkreten Umsetzung der Qualitätskontrolle im Team. CI ermöglicht es Softwareteams, jeden Code-Commit entweder zu einem konkreten Fehler oder zu einem brauchbaren Release-Kandidaten zu machen.