Thomas Kruse trion development GmbH

Auch bei der Auslieferung an den Kunden sollte man über die Automatisierung als spezieller Release/Delivery- oder Deployment-Buildjob nachdenken.

Karsten Sitterberg Selbstständig

Nachdenken sollte man auch darüber, ob die Jenkins-Konfiguration genauso zu behandeln ist, wie die eigentlich entwickelte Software.

In diesem Artikel geht es um die Automatisierung von Angular Builds und -Tests unter Verwendung eines Build-Servers. Vorwissen ist nicht nötig, alle Schritte werden ausführlich erläutert, sodass jeder in der Lage sein sollte, erfolgreich Jenkins für Angular Builds einzurichten.

Sobald Software mehr als lediglich triviale Funktionalität implementiert, sind automatische Tests nicht mehr wegzudenken. Angular bietet dafür beste Voraussetzungen, da das Framework auf Testbarkeit hin konzipiert wurde. Neben Unit-Tests, die normalerweise mit Karma ausgeführt werden, werden auch End-to-End-Tests mit Protractor bzw. Selenium WebDriver unterstützt. In diesem Beitrag liegt der Fokus auf der Einrichtung eines automatisierten Angular Builds mit Unit-Tests ohne End-to-End-Tests. Als Build-Server fällt die Wahl auf Jenkins: Jenkins ist ein Open-Source-Build-Server, der sich sehr einfach auf jedem System mit einer Java Runtime installieren lässt und kostenlos verfügbar ist. Wer Jenkins bereits eingerichtet hat, kann die folgenden Absätze sorglos überspringen.

Artikelserie

  • Teil 1: Jenkins als Build-Server für Angular
  • Teil 2: Jenkins Build-Server mit Jenkinsfile: Pipeline as Code
  • Teil 3: Jenkins und Docker: Docker als Build-Container für Angular-/JavaScript-Applikationen

Jenkins-Einrichtung

Jenkins wird in verschiedenen Formaten auf der Jenkins-Homepage zum Download angeboten. Um Jenkins initial zu testen, bietet sich der Download als WAR an, das sich von der Kommandozeile aus starten lässt. Andere Optionen, bei denen Jenkins als Systemdienst eingerichtet wird, stehen ebenfalls zur Verfügung. Um Jenkins herunterzuladen, kann entweder ein Browser oder unter Linux/macOS auf der Kommandozeile wget verwendet werden:

wget http://mirrors.jenkins.io/war/latest/jenkins.war

Wird der WAR-Download verwendet, so kann die heruntergeladene Datei direkt gestartet werden:

java -jar jenkins.war

Beim ersten Start führt Jenkins eine initiale Einrichtung durch und zeigt dazu auch Protokollinformationen an (Abb. 1).

Abb. 1: Protokollinfos der initialen Jenkins-Einrichtung

Abb. 1: Protokollinfos der initialen Jenkins-Einrichtung

Das Passwort, das unterhalb der Zeile „Please use the following password to proceed to installation“ angegeben ist, wird im weiteren Verlauf benötigt und sollte daher gespeichert werden.
Um zu überprüfen, ob Jenkins erfolgreich gestartet ist, ruft man im Browser die Adresse http://localhost:8080/ auf. Wurde Jenkins zum ersten Mal gestartet, wird man dort aufgefordert, das vorher angegebene Passwort einzugeben. Nach korrekter Eingabe kann man auf dem folgenden Screen „Install suggested plugins“ auswählen, um eine Standardinstallation von Jenkins zu konfigurieren. Jenkins selbst ist durch Plug-ins sehr flexibel erweiterbar und bietet ohne Plug-ins nur eine minimale Funktionalität. Die vorgeschlagenen Plug-ins sind umfangreich, und so kann die Installation etwas länger dauern, wenn man über eine langsame Internetverbindung verfügt. Während der Installation informiert Jenkins kontinuierlich über den Fortschritt der Installation (Abb. 2).

Abb. 2: Alle Installationsinformationen auf einen Blick

Abb. 2: Alle Installationsinformationen auf einen Blick

Zur Absicherung der Jenkins-Instanz wird nun ein erster Nutzer erstellt, unter dem man sich zukünftig am Jenkins anmeldet. Mit einem Klick auf SAVE AND FINISH wird der Nutzer angelegt und die Installation abgeschlossen. Nach diesem Schritt wird man auf die Startseite von Jenkins weitergeleitet: Ab jetzt kann die eigentliche Nutzung beginnen und es kann ein Projekt angelegt werden.

Den vollständigen Artikel lesen Sie in der Ausgabe:

PHP Magazin 5.17 - "Sail away!"

Alle Infos zum Heft
579805306Jenkins für Angular-Builds: Automatisch, praktisch, gut
X
- Gib Deinen Standort ein -
- or -