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

Konfiguration deiner CI-Pipeline

In Codesphere ist die CI-Pipeline das zentrale Infrastructure-as-Code-Rezept (IaC), das definiert, wie eine Landscape gebaut und deployt wird. Diese Anleitung 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 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-Profil?

info

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

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

  • Build-Schritte: Führe spezifische Tests oder Build-Skripte für verschiedene Stufen 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 im Vergleich zu einem gemeinsam genutzten für Dev).

Erfahre mehr über CI-Profile

Ein CI-Profil auswählen

Bevor du deine Schritte definierst, musst du festlegen, welches Profil du bearbeitest. CI-Profile ermöglichen unterschiedliche Konfigurationen für verschiedene Umgebungen (z. B. Development vs. Production) innerhalb desselben Projekts.

  1. Navigiere über die Seitenleiste zum Landscape Config Editor.
  2. Suche das CI-Profil-Dropdown-Menü oben im Editor.
  3. Profil auswählen: Wähle ein vorhandenes Profil (z. B. 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.

Deine Schritte definieren

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-Stufe)

Das Application Setup (bzw. die prepare-Stufe) ist eine optionale Phase, die zum Ausführen von Schritten genutzt wird, die die Umgebung für das Deployment vorbereiten. Dies umfasst typischerweise das Installieren von Abhängigkeiten, das Bauen von Assets oder das Ausführen von Tests. Codesphere ermöglicht die direkte Änderung eines persistenten Dateisystems, um Abhängigkeiten zu installieren oder Assets zu kompilieren, ohne den Aufwand vollständiger Container-Neuaufbauten. Dies ist ideal für schnelle Entwicklungszyklen, während Produktionsprofile 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 alle Vorbereitungen auf Dateisystemebene verantwortlich.
  • Bash-Befehle: Unterstützt jeden Standard-Bash-Befehl. Klicke auf + Add New Step, um Logik wie npm install, nix-env oder den Aufruf eines Skripts in deinem Dateibaum auszuführen – genau wie in einem lokalen Terminal.
  • Persistenz: Alle Änderungen innerhalb von /home/user/app/ bleiben über die gemeinsam genutzte Dateisystem-Mountpunkt hinweg erhalten.
  • Ausführungslogik: Da das Dateisystem persistent ist, muss die prepare-Stufe nur dann ausgeführt werden, wenn sich die Build-Logik oder die Abhängigkeiten ändern.

Persistentes Dateisystem

Änderungen am Dateisystem innerhalb von /home/user/app/ werden im persistenten und gemeinsam genutzten Dateisystem-Mount gespeichert. Dies umfasst z. B. Abhängigkeiten, die über npm install oder pip install installiert wurden. Du musst die Prepare-Stufe nicht bei jedem Deployment erneut ausführen.

Test-Stufe

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

Landscape Deployment (Run-Stufe)

Das Landscape Deployment (bzw. die run-Stufe) definiert die Orchestrierung der zusätzlichen Runtime- und Service-Instanzen, die deine Anwendung benötigt. Services in dieser Stufe werden parallel bereitgestellt und verfügen über Self-Healing-Funktionen, 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). Erfahre mehr über verfügbare Runtimes.
  • 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: Nutze die Einstellungen (Zahnrad-Symbol), um technische Parameter festzulegen:
    • Runtime-Konfiguration: Der Start-Befehl und das Basis-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 mit der Bearbeitung deiner Konfiguration fertig bist:

  • Klicke auf Save Changes oben rechts.
  • Aktualisiere den visuellen Editor: 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 aufgeführt und konfiguriert sind.