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.
--debugvs.--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.
- Navigiere über die Seitenleiste zum Landscape Config Editor.
- Suche das CI-Profil-Dropdown-Menü am oberen Rand des Editors.
- Profil auswählen: Wähle ein vorhandenes Profil (wie
Default,devoderprod) 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.
- Visueller Editor
- Code-Editor (YAML)
Verwendung des visuellen Editors
Der visuelle Editor unterteilt deine Pipeline in zwei Hauptblöcke:

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-envoder 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.
Verwendung des Code-Editors
Wenn du lieber mit Code arbeitest, klicke oben rechts im Editor-Panel auf die Schaltfläche Als Datei bearbeiten.
Eine grundlegende ci.yml besteht aus zwei Hauptstages: prepare und run.
Prepare-Stage
Diese Stage wird unmittelbar nach dem Klonen deines Codes ausgeführt. Sie dient dazu, Abhängigkeiten zu installieren und dein Projekt zu bauen.
Beispiel:
prepare:
steps:
- name: Install Dependencies
command: npm install
- name: Build Application
command: npm run build
Persistentes Dateisystem
Änderungen am Dateisystem während der Prepare-Stage werden im persistenten und gemeinsam genutzten Dateisystem-Mount gespeichert. Du musst die Prepare-Stage nicht bei jedem Deployment erneut ausführen – nur wenn sich die Build-Schritte ändern.
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. Dies stellt sicher, dass dein Code als Teil des Vorbereitungsprozesses validiert wird, bevor die Services initialisiert werden.
Run-Stage
Die run-Stage definiert die Landscape-Services, die deine Anwendung benötigt, die spezifischen Runtimes, die sie verwenden sollen, sowie deren Orchestrierungsparameter. Services in dieser Stage werden parallel ausgeführt und verfügen über eine automatisierte Health-Überwachung, um Prozesse im Fehlerfall neu zu starten.
Beispiel:
type-sense-server:
steps:
- command: ./typesense-server --data-dir="$(pwd)"/typesense-data
--api-key=$TYPESENSE_API_KEY --enable-cors
healthEndpoint: http://localhost:8108/health
plan: 301
replicas: 1
volumeMounts:
- name: _workspace
mountPath: /home/user/app
workspacePath: typesense-data
network:
ports:
- port: 3000
isPublic: false
- port: 8108
isPublic: false
paths: []
env:
TYPESENSE_API_KEY: xyz
Validieren und Speichern
Sobald du die Bearbeitung deiner Konfiguration abgeschlossen hast:
- Änderungen speichern: Drücke
Cmd + S/Ctrl + S - Visuellen Editor aktualisieren: Aktualisiere den visuellen Editor, um deine Änderungen widerzuspiegeln
- Schritte überprüfen: Navigiere zum Tab Execution Manager, um sicherzustellen, dass alle deine Schritte korrekt aufgelistet und konfiguriert sind.