Wenn Sie in Ihrem Team die agile Methode Con­ti­nuous In­te­gra­ti­on (CI) einsetzen möchten, sollten Sie ein einfaches, aber kraft­vol­les CI-Tool einsetzen. Mit Jenkins haben Sie ein solches zur Hand: Die Open-Source-Software bietet Ihnen vor allem durch Plug-ins enorm viele Mög­lich­kei­ten, wie Sie den Con­ti­nuous-In­te­gra­ti­on-Prozess ef­fi­zi­en­ter gestalten können.

Jenkins basiert auf Java und läuft deshalb auf jeder denkbaren Plattform. Da die Software zusammen mit Winston aus­ge­lie­fert wird, einer Servlet-Midd­le­wa­re, bedarf es keines weiteren Servers, wie etwa Tomcat. Damit auch Sie er­folg­reich mit Jenkins arbeiten können, erklären wir Ihnen zuerst, wie Sie das Programm in­stal­lie­ren und richtig ein­stel­len. An­schlie­ßend zeigen wir Ihnen an einem Beispiel, wie Sie die ersten Schritte in einem Projekt machen.

Tipp: Deploy Now un­ter­stützt bei sta­ti­schen Websites

Sie möchten Ihre Ent­wick­lungs­pro­zes­se schlanker gestalten? Mit Deploy Now können Sie statische Websites ohne Umwege von GitHub auf IONOS geo­red­un­dan­te, DDoS-ge­schütz­te In­fra­struk­tur deployen. Legen Sie bequem Staging De­ploy­ments an um Än­de­run­gen vor dem Ausrollen live zu über­prü­fen und pro­fi­tie­ren Sie von einer au­to­ma­ti­schen SSL-Pro­vi­sio­nie­rung.

In­stal­la­ti­on der Software

Jenkins steht in vielen ver­schie­de­nen Versionen zur Verfügung: Zum einen können Sie sich für eine Weekly-Version ent­schei­den – hierbei bringt Jenkins jede Woche ein Update heraus. Zum anderen gibt es den Long-Term-Support (LTS) – alle drei Monate wird eine stabile Fassung ver­öf­fent­licht. Unter diesen beiden Zweigen haben Sie wiederum die Auswahl zwischen ver­schie­de­nen Releases: Neben In­stal­la­ti­ons­pa­ke­ten für die üblichen Be­triebs­sys­te­me (Windows, macOS, Ubuntu/Debian) stehen auch eine Version für Docker sowie ein Webarchiv (.war) bereit.

Hinweis

In unserem Beispiel verwenden wir den Windows-Installer in der Version 2.121.1 (LTS) unter Windows 7. Sollten Sie eine andere Fassung oder ein anderes Be­triebs­sys­tem verwenden, kann sich der Setup-Vorgang anders gestalten. Da Jenkins auf Java basiert, müssen Sie eine aktuelle Version der Java-Tech­no­lo­gie in­stal­liert haben.

Der Windows-Installer führt Sie auf einfache Weise durch die In­stal­la­ti­on. Sie müssen nur das ge­wünsch­te In­stal­la­ti­ons­ver­zeich­nis angeben und die In­stal­la­ti­on starten.

Setup von Jenkins

Die In­stal­la­ti­on dürfte nur wenige Sekunden dauern. Direkt im Anschluss öffnet das Programm Ihren Standard-Browser und ruft localhost:8080 auf. Dort befindet sich das Web­in­ter­face, mit dem Sie Jenkins bedienen können. Zunächst müssen Sie aber einen Si­cher­heits­schritt erledigen: Jenkins hat ein zu­fäl­li­ges Passwort für Sie generiert. Dieses finden Sie im Jenkins-Ver­zeich­nis, dort im so­ge­nann­ten Secrets-Ordner und schließ­lich in der in­iti­al­Ad­min­Pass­word-Datei. Die Datei lässt sich mit einem be­lie­bi­gen Text­edi­tor öffnen. Kopieren Sie die Zei­chen­fol­ge und fügen Sie diese in das Feld im Web­in­ter­face ein.

Nun geht es an die Ein­rich­tung von Jenkins. Der Setup-Assistent fragt Sie, ob Sie selbst wählen möchten, welche Plug-ins Jenkins in­stal­lie­ren soll, oder ob Sie lieber eine Stan­dard­ein­stel­lung verwenden wollen, die alle wichtigen Er­wei­te­run­gen bereits in­te­griert hat. Wenn Sie sich zum ersten Mal mit Jenkins aus­ein­an­der­set­zen, reicht Ihnen diese Auswahl si­cher­lich. Und keine Sorge: Weitere Plug-ins lassen sich pro­blem­los nach­in­stal­lie­ren.

An­schlie­ßend legen Sie einen ersten Nutzer an. Sollten Sie zunächst allein an Ihrem Projekt arbeiten, können Sie diesen Schritt über­sprin­gen und Jenkins einfach als Admin nutzen – in den Ein­stel­lun­gen von Jenkins lassen sich später immer noch neue User mit un­ter­schied­li­chen Rechten anlegen. Im finalen Setup-Schritt haben Sie noch die Mög­lich­keit, eine Jenkins-URL anzugeben. Das ent­spre­chen­de Feld hat bereits localhost:8080 ein­ge­tra­gen. Wenn Sie Jenkins auf einem Server in­stal­liert haben (was in einem pro­fes­sio­nel­len Ar­beits­um­feld der Fall sein sollte), geben Sie an dieser Stelle den korrekten Pfad zum Jenkins-Ver­zeich­nis an. Speichern Sie Ihre Eingabe und schließen Sie damit das Setup ab.

Tipp

Weitere Ein­stel­lun­gen können Sie auch nach­träg­lich im Kon­fi­gu­ra­ti­ons­me­nü von Jenkins vornehmen.

Jenkins – Ein­füh­rung in die Ar­beits­wei­se

Sie starten Jenkins mit einer komplett leeren Ar­beits­um­ge­bung. Um ein neues CI-Projekt zu starten, müssen Sie einen neuen Job erstellen. Dies geht über den pro­mi­nen­ten Hinweis in der Mitte des Fensters („create new jobs“) oder über den Menüpunkt „New Item“, den Sie auf der linken Seite finden.

Im nächsten Schritt geben Sie Ihrem Auftrag einen Namen und wählen aus, was Sie erreichen möchten:

  • Freestyle project: Jenkins verbindet eine Ver­si­ons­ver­wal­tung mit einem Build-System.
  • Pipeline: Hiermit erstellen Sie eine Pipeline über mehrere Build-Agents hinweg.
  • Multi-con­fi­gu­ra­ti­on project: Wenn Sie ein Projekt haben, das ver­schie­dens­ter Ein­stel­lungs­mög­lich­kei­ten bedarf, weil Sie z. B. un­ter­schied­lichs­te Test­um­ge­bun­gen verwenden, wählen Sie diese Option.
  • Folder: Ein Ordner ist ein Container, in dem Sie ver­schach­tel­te Objekte speichern können.
  • GitHub Or­ga­niza­ti­on: Diese Option durch­sucht alle Re­po­si­to­rys eines Accounts auf GitHub.
  • Mul­ti­branch Pipeline: Hiermit erzeugen Sie direkt mehrere Pipelines.

Das Haupt­au­gen­merk legt Jenkins auf die Freestyle-Projekte, weshalb wir in unserem Beispiel auch ein solches erzeugen werden.

Auf der nun folgenden Seite haben Sie zahl­rei­che Ein­stel­lungs­mög­lich­kei­ten. In sechs Ka­te­go­rien kon­fi­gu­rie­ren Sie Ihr Projekt. Nehmen wir an, Sie schreiben ein Programm in Java und möchten Con­ti­nuous In­te­gra­ti­on verwenden. Als erstes befassen wir uns mit dem Source Code Ma­nage­ment. Das Bei­spiel­pro­gramm befindet sich in einem Git-Re­po­si­to­ry auf Ihrem Rechner (es ist auch möglich, Jenkins bei­spiels­wei­se mit GitHub zu verbinden). Geben Sie deshalb unter dem Punkt „Git“ das korrekte Ver­zeich­nis an. Sie können auch mit einer Sub­ver­si­on arbeiten.

Im nächsten Schritt wählen Sie den Build Trigger aus. Damit legen Sie fest, in welchen Si­tua­tio­nen Jenkins einen Build starten soll. Möglich ist dies z. B. durch ein spe­zi­el­les Script eines anderen Programms, nachdem ein anderer Build ab­ge­schlos­sen wurde, oder re­gel­mä­ßig in be­stimm­ten Zeit­in­ter­val­len. Sie können einen Build aber auch manuell auslösen, wenn Sie so weit sind – was wir auch in unserem Beispiel machen werden.

Das Build En­vi­ro­m­ent, das Jenkins Sie als nächstes kon­fi­gu­rie­ren lässt, enthält weitere Optionen rund um Builds: Soll z. B. ab­ge­bro­chen werden, wenn der Prozess hängen bleibt? Oder möchten Sie einen Timestamp in der Konsole ausgeben lassen? Keine der Optionen ist ob­li­ga­to­risch.

Schließ­lich geht es direkt um den Build: Hier legen Sie fest, womit Ihr Programm gebaut werden soll. Da Sie in der Stan­dard­aus­wahl an Plug-ins bereits Ver­bin­dun­gen zu Ant und Gradle in­te­griert haben, können Sie eines dieser Programme wählen. Möglich ist al­ler­dings auch, auf einfache Kom­man­do­zei­len­be­feh­le zu­rück­zu­grei­fen. Wählen Sie die Option für Batch-Befehle und lassen Sie so Ihr Programm kom­pi­lie­ren:

javac MyProgram.java
java MyProgram

Im Anschluss gibt Ihnen Jenkins noch die Mög­lich­keit, Aktionen nach dem Build aus­zu­füh­ren. Hier ist vor allem Testing ein wichtiger Faktor: Verbinden Sie mit der Option „Publish JUnit test result report“ Jenkins und JUnit mit­ein­an­der, um Er­geb­nis­se des Test-Frame­works für Java ein­zu­bin­den. Übrigens: Mit zu­sätz­li­chen Plug-ins verbinden Sie Jenkins auch mit anderen Test­um­ge­bun­gen. So lassen Sie über Jenkins sogar au­to­ma­ti­sche Tests ausführen. Zudem können Sie sich und andere per E-Mail über den Status des Builds in­for­mie­ren lassen. Schließ­lich speichern Sie die Angaben und haben nun Ihren ersten Job erstellt.

Tipp

Wenn Sie Plug-ins in­stal­lie­ren möchten, muss der Jenkins-Server neu­ge­star­tet werden. Dies erreichen Sie, indem Sie sich ausloggen und dann der URL in der Adress­zei­le des Browsers safeRe­start anfügen (z. B. localhost:8080/safeRe­start). Wenn Sie sich nun erneut einloggen, können Sie be­stä­ti­gen, dass Sie neu­star­ten möchten.

Jedes Projekt hat eine eigene Un­ter­sei­te in Jenkins. Hier können Sie einen Build auslösen, die Ein­stel­lun­gen noch einmal verändern und den Status erkennen. Auf der „Status“-Seite zeigt Ihnen Jenkins auch die Build History. War der letzte Build er­folg­reich oder nicht? Mit blauen Punkten markiert Jenkins einen Erfolg, rot stellt einen Fehler dar, der laut Con­ti­nuous In­te­gra­ti­on sofort behoben werden muss. An dieser Stelle sehen Sie auch, wenn ein Build gerade erstellt wird. Mit einem Klick auf die Build-Nummer kommen Sie zu einer De­tail­sei­te, auf der Sie sich auch den Output der Konsole anzeigen lassen können.

Im Dashboard von Jenkins sehen Sie alle Projekte, an denen Sie arbeiten. Auch hier markiert das Programm farblich den Zustand des Projekts. Außerdem erhalten Sie in Form eines Wet­ter­be­richts In­for­ma­tio­nen über die Build Stability. Dabei handelt es sich um eine Statistik, wie stabil die Builds des Projekts im Durch­schnitt sind. Wenn über 80 Prozent Ihrer Builds er­folg­reich sind, werden Sie eine Sonne sehen. Unterhalb dieses Werts wird das sym­bo­li­sche Wetter immer schlech­ter.

Hinweis

Jenkins gibt Ihnen noch viele weitere Mög­lich­kei­ten, das Programm an Ihre Ar­beits­be­din­gun­gen an­zu­pas­sen und so Ihren Con­ti­nuous-In­te­gra­ti­on-Prozess zu ver­ein­fa­chen. Besonders in den zahl­rei­chen Plug-ins werden Sie für die meisten Si­tua­tio­nen eine passende Lösung finden.

Zum Hauptmenü