Was ist YAML?

YAML (Yet Another Markup Language) ist ein Datenserialisierungsformat, das so konzipiert ist, dass es für Menschen einfach zu lesen und zu schreiben ist. Eingesetzt wird es üblicherweise im Konfigurationsmanagement für Konfigurationsdateien, kann jedoch auch zum Speichern von Daten in einem strukturierten Format – z. B. Liste oder Dictionary – verwendet werden.

YAML basiert auf der Idee, Daten in einer Baumstruktur darzustellen, wobei jedes Element der Baumstruktur als Knoten dargestellt wird. Knoten können sowohl andere Knoten als auch Daten in Form von skalaren Werten (z. B. Zeichenfolgen oder Zahlen) enthalten.

YAML wird häufig verwendet, weil es einfach zu lesen und zu schreiben ist und weil es weniger umständlich ist als andere Formate zur Datenserialisierung wie XML oder JSON. Darüber hinaus genießt das Format breite Unterstützung – in vielen Programmiersprachen stehen Bibliotheken für das Parsen und Generieren von YAML bereit.

Wie wird YAML für CI/CD verwendet?

Im CI/CD-Bereich wird YAML als Format für Konfigurationsdateien verwendet, die Build-, Test- und Deployment-Prozesse für eine Anwendung oder einen Dienst definieren. Entwickler*innen können damit die zur Erstellung und Bereitstellung ihrer Anwendung erforderlichen Schritte festlegen und die Abhängigkeiten, Umgebungsvariablen und weiteren Parameter definieren, die für die Ausführung der Pipeline benötigt werden.

YAML wird in CI/CD-Systemen unter anderem wie folgt verwendet:

  1. Definieren der Pipeline-Struktur: Mit YAML wird die Struktur der Pipeline definiert, einschließlich Phasen, Jobs und Schritte. Auf diese Weise erstellen Entwickler*innen eine Pipeline, die die notwendigen Schritte und Tests durchführt, um sicherzustellen, dass die Anwendung korrekt kompiliert, getestet und bereitgestellt wird.
  2. Build- und Deployment-Anweisungen: YAML wird verwendet, um Build- und Deployment-Anweisungen für jede Phase und jeden Job in der Pipeline vorzugeben. Dazu gehören Befehle zum Kompilieren von Code, zum Ausführen von Tests und zum Bereitstellen der Anwendung in einer bestimmten Umgebung.
  3. Konfigurieren von Umgebungsvariablen und Abhängigkeiten: YAML wird verwendet, um die von der Pipeline benötigten Umgebungsvariablen und Abhängigkeiten zu konfigurieren. Dazu gehören Informationen wie Datenbank-Verbindungsdaten, API-Schlüssel und externe Bibliotheken.
  4. Einrichten von Code-Reviews und Genehmigungen: Mit YAML lassen sich Code-Review- und Genehmigungs-Workflows definieren, mit denen Entwickler*innen sicherstellen können, dass Codeänderungen überprüft und genehmigt werden, bevor sie in den Hauptbranch übernommen werden.

Kotlin DSL ist eine Alternative zu YAML und bietet Teams eine moderne Methode, ihre Projekte als Code zu konfigurieren und ihr CI/CD-Projekt in großem Maßstab zu skalieren.