In unserem ersten Artikel haben wir einen Überblick über das Thema Continuous Integration & Continuous Deployment (CI/CD) gegeben.
In den nachfolgenden Artikeln wollen wir gängige Tools im Detail vorstellen und konkrete Handlungsempfehlungen geben.
In unserem ersten Artikel haben wir einen Überblick über das Thema Continuous Integration & Continuous Deployment (CI/CD) gegeben.
In den nachfolgenden Artikeln wollen wir gängige Tools im Detail vorstellen und konkrete Handlungsempfehlungen geben.
GitLab CI ist ein Teil des GitLab-Ökosystems, das dem Entwickler Tools zur Automatisierung in der Softwareentwicklung bietet. Es ermöglicht Entwicklern Code-Änderungen kontinuierlich zu integrieren, zu testen, und automatisiert bereitzustellen. Dies erhöht die Software-Qualität, steigert die Effizienz und verkürzt die Auslieferung von neuen Features.
Gitlab CI arbeitet mit einer Pipeline-basierten Struktur, die es ermöglicht, den Entwicklungsprozess in einzelne, in sich gekapselte und aufeinanderfolgende Schritte zu unterteilen. Diese Schritte werden als sog. „Jobs“ bezeichnet und in „Stages“ zusammengefasst. Eine Pipeline beschreibt alle im Entwicklungsprozess beteiligten Aufgaben für ein Projekt, vom Build über den Test hin zur Bereitstellung.
Job: Ein Job kann das kompilieren, testen oder ausbringen (deployen) von Code sein. Jobs laufen unabhängig voneinander und werden von sog. Runnern ausgeführt.
Stages: Stages sind Gruppen von Jobs. Stages werden sequentiell nacheinander ausgeführt, wobei Jobs innerhalb einer Stage parallel ausgeführt werden. Alle Jobs innerhalb müssen erfolgreich ausgeführt werden, damit die nächste Stage in einer Pipeline ausgeführt wird – ist dies nicht der Fall – bricht die Pipeline vorzeitig ab.
Die Ausführung von Pipeline Jobs erfolgt durch sog. „Runner“. Ein Gitlab Runner ist eine eigenständige Applikation, die in der Pipeline definierte Jobs ausführt.
Runner können auf unterschiedlichen Umgebungen ausgeführt werden – hierzu gehören:
Folgende Typen von Runnern werden unterschieden:
Gitlab CI ist ein mächtiges Werkzeug zur automatisierten Integration, Test und Ausbringung (Deployment) von Software-Artefakten. Entwickler erhalten die Möglichkeit, komplexe Entwicklungsabläufe zu strukturieren und zu automatisieren. Hierdurch wird sowohl die Effizienz als auch die Qualität der Software-Artefakte gesteigert – dies ermöglicht kürzere Release-Zyklen zur Freigabe neuer Funktionen an den Endandwender.
Gitlab CI ist somit ein zentrales Tool für moderne Software- & DevOps Teams um kontinuierlicher und in hoher Qualität Software auszubringen.
Inwieweit sich Gitlab CI von Github Actions unterscheidet – erfahren Sie in unserem nächsten Artikel der CI/CD Blogserie.