Jenkins mit GitHub-Integration, Pipelines und Multibranch Workflows

in  Builds & Tests  , ,

Jenkins mit GitHub-Integration, Pipelines und Multibranch Workflows

Gegenwärtig beschäftige ich mich mit zwei interessanten Punkten in Bezug auf Jenkins. Die neu gestaltete Website bietet dazu einen guten Einstiegspunkt.

Der erste Punkt dreht sich darum, Jenkins besser mit GitHub zu verzahnen.

  • Hier steht insbesondere eine engere Integration des Build Status im Raum. Die Nutzung von Service Hooks erlaubt es, einen Build via Push zu starten, was sowohl schneller als auch effizienter als das zeitbasierte Polling des Git-Repositories seitens Jenkins abläuft.
  • Durch die Commit Status API kann der Erfolg oder Fehler eines Builds zu einem Commit auf GitHub reflektiert werden.
  • Der aktuelle Build-Zustand des Repositories sollte auf GitHub angezeigt werden.
  • Auch Pull Requests sollten ebenso wie der Hauptbranch gebaut werden.

Der zweite Bereich behandelt Pipelines, mit denen sich der Workflow eines Jobs flexibel orchestrieren lässt.

  • Jobs können so prägnant in einer Datei beschrieben werden, die im Repository liegt (Jenkinsfile). Damit wird die Job-Konfiguration mit in der Git-Versionierung und nicht mehr in der Jenkins-UI vorgenommen.
  • Jenkins kann automatisch neue und gelöschte Branches erkennen und erstellt bzw. entfernt die dazugehörigen Jobs automatisch. Dies ist auch der aktuell empfohlene Weg, um Builds für Pull Requests auszuführen.
  • Da die in den Workflows verwendete DSL auf Groovy basiert, ist auch die Implementierung individueller Logik in den Job-Konfigurationen möglich.
  • Aus der Jenkins UI heraus lassen sich Snippets für einzelne Build Steps erzeugen, was die Migration vereinfacht.

Aktuell lese ich mich noch in die Materie ein, werde aber schon bald mit den ersten Schritten für die Umsetzung beginnen.

Weitere Beiträge in Kategorie Builds & Tests

Automatisierte Tests - ein Zwischenstand
- Seit dem kürzlich angekündigten Start der Testautomatisierung von ModuleStudio ist bereits eine Menge geschehen. So gibt es knapp 1.000 Tests für die DSL, darunter vorwiegend für UI-unabhängige …
Ran an die Tests!
- Schon ewig geplant, aber lange schmählich vernachlässigt, habe ich bei ModuleStudio die automatisierten Tests. Zwar ist schon seit Längerem die Infrastruktur dahingehend ausgerichtet, was …
Erneuertes Build-System für ModuleStudio
- Die Komponenten von ModuleStudio werden nun mit anderen Technologien gebaut. Statt Buckminster wird jetzt das Maven-basierte Tycho eingesetzt. Die Jenkins-Jobs wurden auf Pipelines umgestellt und …
Funktion für automatisches Update integriert
- ModuleStudio 0.7 beinhaltet nun eine automatische Aktualisierung. Damit wird das Herunterladen neuer Versionen unnötig. Beim jeden Start der Anwendung werden verfügbare Updates gesucht und, sofern …
API-Dokumentation aufwerten - Enricher in phpDox
- Wer seine Projekte regelmäßig mit einem Build-Server prüfen und testen lässt, erstellt oftmals auch eine API-Dokumentation. Dafür gibt es auch im PHP-Bereich eine Vielzahl unterschiedlicher Werkzeuge, …