Continuous Integration – Grundlagen

Continuous Integration (CI) ist ein Verfahren in der Softwareentwicklung, bei dem Entwickler ihre Codeänderungen häufig in einem zentralen Repository zusammenführen, woraufhin automatisierte Builds und Tests ausgeführt werden.

Sie können ein einfaches CI-System einrichten, um neue Änderungen zu verhindern, die den Build nach der Zusammenführung beeinträchtigen würden. Sie können ein fortschrittlicheres CI-System programmieren, um die Anwendung automatisch zu testen und sicherzustellen, dass sie sich in verschiedenen Umgebungen wie API-Ebenen, Bildschirmgrößen und Plattformen erwartungsgemäß verhält.

Ein Diagramm, das zeigt, wie mehrere Entwickler Codeänderungen anfordern und wie diese vom CI-System geprüft werden, bevor sie im Hauptcode-Repository zusammengeführt werden.
Abbildung 1: Ein CI-System führt vor dem Zusammenführen Prüfungen aus, um ein Code-Repository intakt zu halten.

In diesem Dokument werden gängige Strategien von Entwicklern beschrieben, mit denen sie effektive CI-Systeme für Android-Projekte einrichten. Diese Richtlinien sind allgemein gehalten und gelten für die meisten Lösungen.

Typisches Beispiel

Ein typisches CI-System folgt einem Workflow oder einer Pipeline, die so aussehen können:

  1. Das CI-System erkennt eine Änderung im Code, in der Regel, wenn ein Entwickler eine Pull-Anfrage erstellt, die auch als „Änderungsliste“ oder „Zusammenführungsanfrage“ bezeichnet wird.
  2. Er stellt einen Server bereit und initialisiert ihn, um den Workflow auszuführen.
  3. Er ruft den Code und bei Bedarf auch Tools wie das Android SDK oder Emulatorbilder ab.
  4. Das Projekt wird erstellt, indem ein bestimmter Befehl wie ./gradlew build ausgeführt wird.
  5. Die lokalen Tests werden mit einem bestimmten Befehl wie z. B. /gradlew test ausgeführt.
  6. Er startet Emulatoren und führt die instrumentierten Tests aus.
  7. Dabei werden Artefakte wie Testergebnisse und APKs hochgeladen.
Ein Diagramm, das einen grundlegenden CI-Workflow zeigt
Abbildung 2. Grundlegender CI-Workflow

Vorteile von CI

CI bietet unter anderem folgende Vorteile:

  • Verbesserte Softwarequalität: CI kann zur Verbesserung der Softwarequalität beitragen, da Probleme frühzeitig erkannt und behoben werden. Dies kann dazu beitragen, die Anzahl der Fehler in Software-Releases zu reduzieren und die Nutzererfahrung insgesamt zu verbessern.
  • Geringeres Risiko von fehlerhaften Builds: Wenn Sie Ihren Build-Prozess mit CI automatisieren, können Sie fehlerhafte Builds besser vermeiden, indem Sie Probleme früher im Prozess beheben.
  • Höheres Vertrauen in Releases: CI kann dabei helfen, sicherzustellen, dass jeder Release stabil und bereit für die Produktion ist. Durch die Ausführung automatischer Tests kann CI potenzielle Probleme identifizieren, bevor Sie sie für die Öffentlichkeit freigeben.
  • Verbesserte Kommunikation und Zusammenarbeit: CI bietet Entwicklern einen zentralen Ort, an dem sie Code und Testergebnisse teilen können. Dadurch wird die Zusammenarbeit von Entwicklern und anderen Teammitgliedern und die Verfolgung des Fortschritts erleichtert.
  • Gesteigerte Produktivität: CI kann zur Steigerung der Entwicklerproduktivität beitragen, indem Aufgaben automatisiert werden, die ansonsten zeitaufwendig und fehleranfällig wären.

Weitere Informationen

Auf den folgenden Seiten findest du weitere Informationen dazu, wie du Continuous Integration nutzen kannst, um die Entwicklung deiner App zu verbessern: