© Sky vectors/Shutterstock.com
Angular mit GitLab CI und Docker verwenden

Build, Test, Deploy mit Angular und CI


Der Einsatz eines Continuous-Integration-(CI-)Servers ist im Backend-Bereich schon lange eine etablierte Best Practice. Mit der Zunahme von Komplexität und Umfang moderner Web-Frontends nimmt der Bedarf an Techniken professioneller Entwicklung auch hier zu. Dazu gehört die Arbeit mit Test-driven Development, CI-Servern und automatisierten Abläufen. In diesem Artikel beschäftigen wir uns am Beispiel von Angular und GitLab CI damit, wie die Build-Automatisierung umgesetzt werden kann.

Wer noch keinen CI-Server einsetzt, sollte sich die Vorteile vor Augen führen:

  • Schnelles, automatisches Feedback für alle Codeänderungen

  • Reproduzierbare Build-Ergebnisse durch eine neutrale Umgebung

  • Alle Änderungen können automatisch für den Test durch Kunden oder Fachabteilung in einer Testumgebung bereitgestellt werden

GitLab entstand ursprünglich als reines Git Repository und wurde später um einen CI-Server erweitert. Der Vorteil bei dieser integrierten Lösung liegt auf der Hand: GitLab weiß, wann sich Änderungen am Code ergeben und kann dann direkt einen Build starten. Eine aufwendige Integration von Versionsverwaltung und Build-Server entfällt somit. GitLab CI folgt dem Trend, die Build-Konfiguration zusammen mit dem zu bauenden Artefakt zu versionieren. Das Vorgehen, wie in diesem Beitrag vorgestellt, lässt sich entsprechend einfach auch auf andere Build-Server übertragen, da die Mechanismen ähnlich sind. In der Umsetzung erwartet GitLab CI eine .gitlab-ci.yml-Datei, in der im YAML-Format die einzelnen Build-Schritte beschrieben sind. Das hat den Vorteil, dass bei jedem Branch eine andere Build-Konfiguration verwendet werden kann. Die recht schlichte Syntax verleitet nicht dazu, besonders komplexe und außerhalb des Build-Servers kaum nachstellbare Builds zu konzipieren. In der Regel sind die einzelnen Build-Schritte einfache Aufrufe von Shellskripten.

Zur Ausführung der Builds unterstützt GitLab CI Docker Images. Damit ist auch die Frage danach beantwortet, wie der Build-Server an benötigte Werkzeuge, wie npm oder Maven, und Ablaufumgebungen, beispielsweise Node.js oder eine Java-Umgebung, gelangt. GitLab CI kann neben dem zum Build verwendeten Docker-Container auch weitere Service-Container starten, um damit für Tests benötigte Umsysteme wie eine Datenbank oder Backend-Systeme bereitzustellen. Die eigentliche Ausführung übernehmen sogenannte Runner: Diese Build-Agenten können auf separaten Maschinen oder in der Cloud gestartet werden und kommunizieren mit dem GitLab-...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang