Zum Hauptinhalt springen
Version: 1.89.x (Q2 26)

Konfigurieren der CI Pipeline

In Codesphere ist die CI Pipeline das zentrale Infrastructure as Code (IaC) Rezept, das definiert, wie eine Landscape erstellt und deployt wird. Diese Anleitung führt durch das Erstellen und Konfigurieren der Pipeline mithilfe der ci.yml-Datei.

Was ist die ci.yml?

Die ci.yml bietet ein standardisiertes Format zum Definieren der Landscape. Sie dient als deklarative Konfiguration, die festlegt, wie das Service Mesh zusammengesetzt ist, welche Ressourcen jeder Service benötigt und wie sie miteinander orchestriert werden.

Die Datei besteht aus zwei Hauptabschnitten:

  • prepare: Definiert die Runtime-Umgebung, installiert Abhängigkeiten und baut die Anwendung. Diese Stufe bereitet das persistente, gemeinsam genutzte Dateisystem vor.
  • run: Definiert die Deployment-Artefakte (Services), deren Rechenressourcen und deren Runtime-Konfiguration (Ports, Health Checks und Umgebungsvariablen).

Was ist ein CI Profile?

info

Ein CI Profile ist eine eindeutige Variante der ci.yml-Konfiguration. Beim Erstellen eines neuen Profils generiert Codesphere eine entsprechende Konfigurationsdatei im Projektstammverzeichnis (z. B. ci.dev.yml, ci.prod.yml).

Dies ermöglicht das Anpassen bestimmter Verhaltensweisen für unterschiedliche Umgebungen:

  • Build-Schritte: Ausführen bestimmter Tests oder Build-Skripte für verschiedene Stufen.
  • Run-Befehle: Starten der Anwendung mit unterschiedlichen Flags (z. B. --debug vs. --prod).
  • Services: Starten unterschiedlicher Services & Runtimes (z. B. ein dediziertes Redis für Prod vs. ein gemeinsam genutztes für Dev).

Mehr zu CI Profiles erfahren

Ein CI Profile auswählen

Vor dem Definieren der Schritte muss festgelegt werden, welches Profile bearbeitet wird. CI Profiles ermöglichen unterschiedliche Konfigurationen für verschiedene Umgebungen (z. B. Development vs. Production) innerhalb desselben Projekts.

  1. Zum Landscape Config Editor in der Seitenleiste navigieren.
  2. Das CI Profile-Dropdown-Menü oben im Editor suchen.
  3. Ein Profile auswählen: Ein bestehendes Profile (z. B. Default, dev oder prod) zum Bearbeiten auswählen.

hinweis

Alle im Editor vorgenommenen Änderungen (Hinzufügen von Schritten, Ändern von Ressourcen) gelten nur für das aktuell ausgewählte CI Profile.

Definieren der Schritte

info

Die Pipeline kann über die visuelle Oberfläche oder durch direktes Bearbeiten des Codes konfiguriert werden. Beide Optionen aktualisieren dieselbe zugrunde liegende Datei.

Verwendung des Visual Editors

Der Visual Editor unterteilt die Pipeline in zwei Hauptblöcke:

CI Config Editor

Application Setup (Prepare-Stufe)

Das Application Setup (bzw. die prepare-Stufe) ist eine optionale Phase, in der Schritte ausgeführt werden, die die Umgebung für das Deployment vorbereiten. Dazu gehört üblicherweise das Installieren von Abhängigkeiten, das Bauen von Assets oder das Ausführen von Tests. Codesphere ermöglicht das direkte Bearbeiten eines persistenten Dateisystems, um Abhängigkeiten zu installieren oder Assets zu kompilieren, ohne den Aufwand vollständiger Container-Neubauten. Dies ist ideal für schnelle Entwicklung, während Production-Profile diese Stufe oft leer lassen, um die Integrität vorab gebauter, unveränderlicher Images zu erhalten.

  • Ausführungsumgebung: Schritte in dieser Stufe werden auf den Ressourcen des IDE Pods ausgeführt. Diese gemeinsam genutzte Compute-Umgebung ist für die gesamte Vorbereitung auf Dateisystemebene verantwortlich.
  • Bash-Befehle: Unterstützt jeden standardmäßigen Bash-Befehl. Mit + Add New Step kann Logik wie npm install, nix-env oder das Aufrufen eines Skripts im Dateibaum genauso ausgeführt werden wie in einem lokalen Terminal.
  • Persistenz: Alle Änderungen innerhalb von /home/user/app/ bleiben über den gemeinsam genutzten Dateisystem-Mount hinweg erhalten.
  • Ausführungslogik: Da das Dateisystem persistent ist, muss die prepare-Stufe nur ausgelöst werden, wenn sich Build-Logik oder Abhängigkeiten ändern.

Persistentes Dateisystem

Änderungen am Dateisystem innerhalb von /home/user/app/ werden im persistenten und gemeinsam genutzten Dateisystem-Mount gespeichert, einschließlich z. B. über npm install oder pip install installierter Abhängigkeiten. Die Prepare-Stufe muss nicht bei jedem Deployment erneut ausgeführt werden.

Test-Stufe

Die separate „Test Stage“ wurde aus der Pipeline entfernt. Test- und Linting-Befehle (z. B. npm test oder pytest) sollten nun direkt in die Application Setup-Schritte integriert werden.

Landscape Deployment (Run-Stufe)

Das Landscape Deployment (bzw. die run-Stufe) definiert die Orchestrierung der zusätzlichen Runtime- und Service-Instanzen, die die Anwendung benötigt. Services in dieser Stufe werden parallel bereitgestellt und verfügen über Self-Healing-Fähigkeiten, wobei die Schritte innerhalb jedes Services sequenziell ausgeführt werden.

  • Service-Orchestrierung: Jeder Service arbeitet als unabhängige Infrastrukturkomponente (z. B. ein Webserver, Worker oder eine Datenbank). Mehr zu verfügbaren Runtimes erfahren.
  • Self-Healing: Services werden von der Plattform überwacht; stürzt ein Prozess ab oder beendet sich unerwartet, versucht Codesphere automatisch, ihn neu zu starten.
  • Service-Konfiguration: Über das Settings (Zahnrad-Symbol) können technische Parameter definiert werden:
    • Runtime Config: Der Start-Befehl und das Basis-Image.
    • Resources: Zuweisung von Compute-Plänen.
    • Networking: Konfiguration interner Ports und deren Zuordnung zu öffentlichen oder privaten Routen.

Compute-Pläne

Für Private Cloud-Installationen können die verfügbaren Compute-Pläne angepasst werden.

Validieren und Speichern

Nach Abschluss der Konfigurationsbearbeitung:

  • Save Changes anklicken in der oberen rechten Ecke.
  • Visual Editor aktualisieren: Der Visual Editor aktualisiert sich automatisch, um die Änderungen widerzuspiegeln.
  • Schritte überprüfen: Zum Tab Execution Manager navigieren, um sicherzustellen, dass alle Schritte korrekt aufgeführt und konfiguriert sind.