GitLab CI/CD ist ein Tool zur Automatisierung von Softwareentwicklungsprozessen, das kontinuierliches Bauen, Testen und Bereitstellen von Code ermöglicht. Dadurch wird verhindert, dass neue Funktionen auf fehlerhaften Versionen basieren. Der Workflow besteht aus folgenden Schritten:
.gitlab-ci.yml
DateiDiese YAML-Datei bildet das Herzstück jeder Pipeline. Sie definiert, welche Schritte (Jobs) in welcher Reihenfolge (Phasen) ausgeführt werden. Jede Pipeline kann so gestaltet werden, dass sie verschiedene Phasen wie Build, Test und Deployment umfasst. Die Datei enthält auch Abhängigkeiten, Variablen und Bedingungen, um die Automatisierung zu steuern.
Runner sind Ausführungsumgebungen, die die Jobs einer Pipeline
abarbeiten. Sie können auf physischen Maschinen, virtuellen Instanzen
oder in Containern betrieben werden. GitLab.com bietet vorkonfigurierte
Runner für Linux, Windows und macOS. Alternativ können eigene Runner auf
selbst verwalteten Instanzen eingerichtet werden. Diese Runner führen
die in der .gitlab-ci.yml
definierten Aufgaben aus.
Pipelines bestehen aus mehreren Phasen, wobei jede Phase eine Gruppe von Jobs umfasst, die parallel oder sequentiell ausgeführt werden. Beispielsweise kann eine typische Pipeline aus den Phasen “Build”, “Test” und “Deploy” bestehen. Die Pipeline kann durch verschiedene Ereignisse wie Commits, Merges oder Zeitpläne ausgelöst werden. GitLab ermöglicht es, Pipelines einfach zu visualisieren und zu überwachen.
Variablen sind nützlich, um Konfigurationen und sensible Daten, wie API-Schlüssel, innerhalb einer Pipeline zu verwalten. GitLab unterstützt sowohl benutzerdefinierte Variablen, die der Nutzer festlegt, als auch vordefinierte Variablen, die systemseitig bereitgestellt werden. Diese Variablen können für einzelne Jobs oder für ganze Projekte oder Gruppen festgelegt werden. Sie können zudem als “geschützt” oder “maskiert” markiert werden, um zusätzliche Sicherheit zu gewährleisten.
CI/CD-Komponenten in GitLab ermöglichen die Wiederverwendung von
Pipeline-Konfigurationen. Dies fördert eine konsistente Anwendung von
Best Practices und reduziert die Notwendigkeit, ähnliche Pipelines
mehrfach zu konfigurieren. Komponenten können in der Pipeline durch das
include
-Schlüsselwort hinzugefügt werden und erleichtern
die Wartung großer Projekte. GitLab stellt auch vorgefertigte Templates
zur Verfügung, um typische Aufgaben schneller zu integrieren.