CI/CD mit GitLab: Deployment einer statischen Website auf einen eigenen Server

Anwendungen tut es gut, wenn man sie in kleinen Inkrementen entwickelt und testet. Die Basis dafür ist CI/CD. Wir geben Ihnen eine Einführung mit GitLab CI.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht 2 Kommentare lesen
Lesezeit: 16 Min.
Von
  • Kilian Kluge
  • Mike Rothenhäusler
Inhaltsverzeichnis

Im ersten Teil der Tutorialreihe sollen die Grundlagen von CI/CD mit GitLab deshalb anhand des Beispiels einer statischen Website erarbeitet werden. Sie besteht aus einigen HTML-, CSS- und Grafikdateien und wird auf einem einfachen Webserver bereitgestellt. Schon in diesem einfachen Fall werden die Vorteile gegenüber manuellen Deployment vom eigenen Rechner aus deutlich sichtbar.

CI/CD – Continous Integration / Continous Deployment – gehört zum Stand der Technik der modernen Softwareentwicklung und die quelloffene Codeverwaltungsplattform GitLab bringt mit GitLab CI eine integrierte CI/CD-Funktion mit. Ein guter Ansatz also, um zwei Fliegen mit einer Klappe zu schlagen: die Grundmechaniken von GitLab CI kennenzulernen und sich gleichzeitig an das Thema Continuous Integration und Continuous Deployment zu wagen. Das Ergebnis des ersten Teils dieser Tutorialreihe soll eine einfache, aber vollständige CI/CD-Pipeline sein.

Die Abkürzung CI/CD wird häufig unscharf oder als Überbegriff für das automatisierte Testen und Kompilieren von Software verwendet. Daher lohnt es sich, zum Einstieg in die Tutorialreihe einige Begriffe zu klären. Continuous Integration bezeichnet ein Vorgehen, bei dem jede Änderung am Quellcode einer Software unmittelbar einen Prozess anstößt, der die vollständige Anwendung zusammensetzt und als Gesamtsystem testet. Damit will man sicherstellen, dass die einzelnen Komponenten miteinander kompatibel bleiben und auch ihre Schnittstellen zueinander weiterhin funktionieren. Das ist insbesondere wichtig bei Software, die externe oder interne Systeme wie Datenbanken anbindet oder Bibliotheken von Drittanbietern integriert.