Zum Hauptinhalt springen
Version: Weekly Build

Konfiguration deiner CI-Pipeline

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

Was ist die ci.yml?

Die ci.yml bietet ein standardisiertes Format zur Definition deiner Landscape. Sie dient als deklarative Konfiguration, die festlegt, wie dein 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 deine Anwendung. Diese Stage bereitet das persistente, gemeinsam genutzte Dateisystem vor.
  • run: Definiert die Deployment-Artefakte (Services), deren Compute-Ressourcen sowie deren Runtime-Konfiguration (Ports, Health-Checks und Umgebungsvariablen).

Was ist ein CI-Profil?

info

Ein CI-Profil ist eine eindeutige Variante deiner ci.yml-Konfiguration. Wenn du ein neues Profil erstellst, generiert Codesphere eine entsprechende Konfigurationsdatei in deinem Projektstamm (z. B. ci.dev.yml, ci.prod.yml).

Dies ermöglicht es, bestimmte Verhaltensweisen für unterschiedliche Umgebungen anzupassen:

  • Build-Schritte: Führe für verschiedene Stages spezifische Tests oder Build-Skripte aus.
  • Run-Befehle: Starte deine App mit unterschiedlichen Flags (z. B. --debug vs. --prod).
  • Services: Starte unterschiedliche Services & Runtimes (z. B. ein dediziertes Redis für Prod vs. ein gemeinsam genutztes für Dev).

Erfahre mehr über CI-Profile

Auswahl eines CI-Profils

Bevor du deine Schritte definierst, musst du entscheiden, welches Profil du bearbeitest. Mit CI-Profilen kannst du innerhalb desselben Projekts unterschiedliche Konfigurationen für verschiedene Umgebungen (z. B. Development vs. Production) verwenden.

  1. Navigiere über die Seitenleiste zum Landscape Config Editor.
  2. Suche das CI-Profil-Dropdown-Menü am oberen Rand des Editors.
  3. Profil auswählen: Wähle ein vorhandenes Profil (wie Default, dev oder prod) zur Bearbeitung aus.

hinweis

Alle Änderungen, die du im Editor vornimmst (Schritte hinzufügen, Ressourcen ändern), gelten nur für das aktuell ausgewählte CI-Profil.

Definition deiner Schritte

info

Du kannst deine Pipeline über die visuelle Oberfläche oder durch direktes Bearbeiten des Codes konfigurieren. Beide Optionen aktualisieren dieselbe zugrunde liegende Datei.

Verwendung des visuellen Editors

Der visuelle Editor unterteilt deine Pipeline in zwei Hauptblöcke:

CI Config Editor

Application Setup (Prepare-Stage)

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

  • Ausführungsumgebung: Schritte in dieser Stage werden auf den Ressourcen des IDE-Pods ausgeführt. Diese gemeinsam genutzte Compute-Umgebung ist für alle Vorbereitungen auf Dateisystemebene verantwortlich.
  • Bash-Befehle: Unterstützt jeden Standard-Bash-Befehl. Klicke auf + Neuen Schritt hinzufügen, um Logik wie npm install, nix-env oder das Aufrufen eines Skripts in deinem Dateibaum auszuführen – genau wie in einem lokalen Terminal.
  • Persistenz: Alle Änderungen, die innerhalb von /home/user/app/ vorgenommen werden, bleiben über den gemeinsam genutzten Dateisystem-Mount hinweg bestehen.
  • Ausführungslogik: Da das Dateisystem persistent ist, muss die prepare-Stage nur ausgelöst werden, wenn sich die 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. Abhängigkeiten, die über npm install oder pip install installiert wurden. Du musst die Prepare-Stage nicht bei jedem Deployment erneut ausführen.

Test-Stage

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

Landscape Deployment (Run-Stage)

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

  • Service-Orchestrierung: Jeder Service arbeitet als eigenständige Infrastrukturkomponente (z. B. ein Webserver, Worker oder eine Datenbank). Erfahre mehr über verfügbare Runtimes.
  • Self-Healing: Services werden von der Plattform überwacht; wenn ein Prozess abstürzt oder unerwartet beendet wird, versucht Codesphere automatisch, ihn neu zu starten.
  • Headless Services: Füge HTTP-Router-Weiterleitungen zu bestehenden Endpunkten hinzu, ohne zusätzliche Ressourcen zu deployen. Erfahre mehr über Headless Services.
  • Service-Konfiguration: Verwende die Einstellungen (Zahnrad-Symbol), um technische Parameter zu definieren:
    • Runtime-Konfiguration: Der Start-Befehl und das Base-Image.
    • Ressourcen: Zuweisung von Compute-Plänen.
    • Netzwerk: 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

Sobald du die Bearbeitung deiner Konfiguration abgeschlossen hast:

  • Klicke auf Änderungen speichern oben rechts.
  • Visuellen Editor aktualisieren: Der visuelle Editor wird automatisch aktualisiert, um deine Änderungen widerzuspiegeln.
  • Schritte überprüfen: Navigiere zum Tab Execution Manager, um sicherzustellen, dass alle deine Schritte korrekt aufgelistet und konfiguriert sind.