Blog

Alle Beiträge mit dem Tag jenkins

Ephemeral Jenkins Slaves to the Rescue!

Jeder, der in einem größeren Software-Projekt mit Jenkins gearbeitet hat, kennt das Problem: Die Kapazitäten im Jenkins sind knapp, einige Jobs dürfen nur auf bestimmten Knoten („Slaves“) ausgeführt werden, andere Jobs müssen vielleicht zwingend exklusiv auf einem Knoten laufen, da es sonst zu Port-Kollisionen kommt.

Man könnte jetzt mehr Slaves bei der IT des Kunden beantragen oder gleich Slaves in VMs anlegen. Beides nicht unbedingt schlanke Lösungen, zumal man alle Tools wieder installieren und in Jenkins konfigurieren muss. Warum also nicht Docker-basierte Slaves nutzen? Da könnte man lokal die Images mit allen Tools und Einstellungen vorbereiten und dann nutzen.
weiterlesen

JavaSPEKTRUM 5/2016: Continuous Delivery ohne Kopfschmerzen

In der Oktober/November-Ausgabe des JavaSPEKTRUMs ist ein Artikel von Holisticon-Mitarbeiter Martin Reinhardt über Continuous Delivery erschienen, der sich mit immer kleineren Komponenten im IoT und Microservices Umfeld befasst. Durch den verstärkten Trend zur inkrementell-iterativen Softwareentwicklung in vielen Unternehmen müssen auf einmal viele Zwischenstände einer Software qualitätsgesichert werden. Diese Kette aus Entwicklung, Qualitätssicherung und Auslieferung wird durch die engen Zeitfenster für Tests auf eine harte Probe gestellt. Die beiden aktuellen Trendthemen Internet of Things (IoT) und Microservices verstärken diesen Trend nochmals, weil dadurch zusätzliche Artefakte erstellt und weiterentwickelt werden.

Bei Umsetzung innerhalb von Jenkins sind dabei verschiedene technische und konzeptionelle Vorbereitungen zu treffen, um eine Continuous Delivery (CD) umzusetzen, die auch sicherstellt, dass die einzelnen Puzzleteile der Software zusammenpassen.

In Java helfen einen viele Bibliotheken kontinuierliche Änderungen umzusetzen, z.B. Flyway im Rahmen von der Datenbank-Migration. Außerdem kann man mit dem Pipeline-Plugin von Jenkins Build-Skripte in einer DSL beschreiben und mitversionieren. Um einzelne Module/Services integriert zu testen bietet sich Docker in Verbindung mit Serenity zur Oberflächen-Steuerung an. Dieser Artikel stellt das Vorgehen an einem Github-Projekt vor und steht auch als Beispiel-Projekt in Jenkins aufrufbar.

Die Ausgabe 5/2016 ist seit dem 16. September am Kiosk oder online verfügbar.

Jenkins Blue Ocean – Modernes UI für Jenkins

Das Continuous-Delivery-Tool Jenkins hat sicherlich nie jemanden mit seiner Oberfläche überzeugt. Die Weboberfläche ist einfach in die Jahre gekommen und auch die Erweiterung durch Plugins ist nicht wirklich geplant gewesen. Dem wollen die Entwickler nun mit einem Plugin Abhilfe schaffen: Jenkins Blue Ocean soll die User Experience deutlich verbessern. Dabei steht aber nicht nur der visuelle Eindruck im Vordergrund, vielmehr sollen auch neue Funktionen mehr Informationen übersichtlicher darstellen. Zudem wurde schon eingangs an an die Erweiterung durch Jenkins-Plugins gedacht:

Pipeline run in Jenkins Blue Ocean

weiterlesen

Rock CI mit Docker und Jenkins 2

Für Jenkins liegt aktuell die finale Version 2.0 vor, und es hat sich einiges getan: Die neue Version kommt mit einer höheren Zugriffssicherheit, einer verbesserten Plug-in-Auswahl sowie einem überarbeiteten Job-Konfigurationsformular daher. Letzteres bietet bei der Anzeige komplexer Formulare nun eine visuell klarere Struktur; zudem wurden dem Formular mehrere Registerkarten hinzugefügt, um die Navigation zu beschleunigen.
Auch der Weiterentwicklung der Plug-in-Auswahl des Setup-Dialogs haben sich die Jenkins-Macher gewidmet. Ab sofort werden das Git-Plug-in und weitere populäre Erweiterungen  standardmäßig mitinstalliert. Im Hinblick auf das Pipeline-Plug-in wurden die ergänzende Module Pipeline Stage View und GitHub Organization Folder einbezogen. Das Plug-in Pipeline Stage View erlaubt einen schnellen Überblick über die Continuous-Delivery-Pipeline, während GitHub Organization Folder automatisch nach GitHub-Repositorien mit Pipeline-Definitionen sucht und Jobs für diese einrichtet. Dabei kann das Build-Skript für den Job im Versionskontrollsystems auch mit hinterlegt werden und es gibt sehr gute Unterstützung für mehrere Branches, ohne dass separate Jobs angelegt werden müssen.
weiterlesen

SLM in der mobilen Entwicklung

Buildserver, Bugtracking, Versions- und Qualitätsmanagement sind aus der Entwicklung in Enterprise-Projekten nicht mehr wegzudenken. Auch in der mobilen Entwicklung sind sie sinnvoll.

Der Artikel in der web & mobile Developer 01/2013 zum Thema „SLM in der mobilen Entwicklung“ wurde von den Holisticon-Mitarbeitern Jan Weinschenker und Sven Bunge verfasst. Er vermittelt, warum Software-Lifecycle-Management (SLM) auch für die mobile Entwicklung verwendet werden sollte. Es hilft, die Komplexität von Software beherrschbar zu machen und über verschiedene Arten von automatischen Tests die Qualität zu gewährleisten. Der Artikel „Androiden kontinuierlich integriert“ der web & mobile Developer 12/2012 erklärt Continuous Integration für Android-Apps. Dieser Artikel baut darauf auf und erklärt, wie die Software-Qualität der Apps gemessen und erhöht werden kann.

Ein Themen-Überblick:

  • Warum ist SLM auch für die mobile Entwicklung sinnvoll?
  • Continuous Integration
  • Automatisiertes Testen
    • Unit-Tests mit JUnit
    • Integrations-Tests mit Robolectric
    • BDD mit Cucumber
    • UI-Stress-Tests mit Monkey
  • Bewertung von Software-Qualität
    • Statische Code-Analyse mit PMD und Findbugs
    • Einheitlicher Code-Style mit Checkstyle
    • Zusammenfassung der Ergebnisse mit Sonar
  • Release-Management bei Apps
    • Warum sind Versionen wichtig?
    • Releasen mit Maven

Die Ausgabe 01/2013 der Zeitschrift ist ab jetzt im Zeitschriften-Handel verfügbar.