© saicle/Shutterstock.com
Teil 2: Angular-Anwendungen mit Jenkins-Pipeline automatisiert bauen und testen

Automatisierung leicht gemacht


Im ersten Teil der Artikelserie wurden die Einrichtung von Jenkins als Build-Server und die manuelle Konfiguration des Builds für Angular-Projekte gezeigt. Wieso es sich lohnt, bei der Automatisierung noch einen Schritt weiter zu gehen und wie eine entsprechende Umsetzung gestaltet wird, zeigt dieser Artikel.

Die manuelle Konfiguration eines Build-Systems hat einige Nachteile, die sich insbesondere bei agilen Projekten mit einem Pull-/Merge-Request-basierten Entwicklungsprozess mit Feature-Branches deutlich zeigen. Hier muss für jedes Projekt und jeden Entwicklungszweig eine manuelle Konfiguration vorgenommen werden. Liegt die Konfiguration im Build-Server und damit ausgelagert von der zu bauenden Software, können Anwendung und Konfiguration nicht gemeinsam versioniert werden. Zudem sollte der Build direkt vom Entwickler der Software konfiguriert und beschrieben werden, da dieser in der Regel am besten weiß, wie ein Artefakt optimal zu bauen und zu testen ist.

In diesem Artikel wird am Beispiel Jenkins gezeigt, wie Configuration-as-Code für einen JavaScript-Build eines Angular-Projekts umgesetzt werden kann.

Jenkins bietet mit dem Jenkinsfile eine Möglichkeit, die Build-Konfiguration als ausführbare Beschreibung gemeinsam mit dem Sourcecode der Software zu verwalten. Dieser Artikel verwendet dieselben Build-Schritte wie sie in Teil 1 der Artikelserie mit manueller Konfiguration beschrieben wurden, setzt sie jedoch in einem Jenkinsfile um. Der Kasten „Build-Schritte“ zeigt die typischen Build-Schritte eines Angular- bzw. JavaScript-Frontend-Projekts.

Gutes Karma für JavaScript-Tests

Karma wird als De-facto-Standard für Unit-Tests in diesem Artikel eingesetzt. Es nutzt die JavaScript-Umgebung eines Browsers wie beispielsweise Firefox oder Chrome, um darin in JavaScript formulierte Unit-Tests auszuführen. Damit Karma JUnit-kompatible Ergebnisse erzeugt, die Jenkins verarbeiten kann, ist eine Anpassung der Karma-Konfiguration (karma.conf.js) erforderlich. Die nötigen ...

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