150 likes | 501 Views
Hudson CI / Jenkins CI. Continuous Integration Server. Über mich. Stefan Scheumann Bachelor Informatik Hochschule Zittau / Görlitz 6. Semester Zur Zeit im Praktikum. Projekte bei Studenten. 2 Monate vor Abgabe Aufgabenaufteilung 2 Wochen vor Ende Zusammenführen der Einzelteile
E N D
Hudson CI / Jenkins CI Continuous Integration Server
Über mich • Stefan Scheumann • Bachelor Informatik • Hochschule Zittau / Görlitz • 6. Semester • Zur Zeit im Praktikum Stefan Scheumann
Projekte bei Studenten • 2 Monate vor Abgabe Aufgabenaufteilung • 2 Wochen vor Ende Zusammenführen der Einzelteile • 2 Tage vor Schluss Fehler entdecken • 2 Stunden vor Abgabe Lösung finden • 2 Minuten vor Abgabe fertig werden • 2 Tage nach Abgabe entdecken, dass doch nicht alle Fehler beseitig wurden Stefan Scheumann
Lösung • Alle Projektmitglieder arbeiten dauerhaft zusammen • Kleine Programmteile • In regelmäßigen Abständen zusammenführen des Codes • Testen des Codes • Ein funktionierendes Projekt abgeben • Continuous Integration Stefan Scheumann
Hudson CI • Java-basierter CI-Server • Initiiert 2006/2007 von KohsukeKawaguchi • Open Source (MIT-Lizenz) • Ca. 17.000 Installationen • 1,5 Mio. LOC • 200+ Plugins • 150+ Beitragende Stefan Scheumann
Vorteile • Gemeinsame Codebasis • Automatisierter Build • Selbsttestender Build • Häufige Integration • Schnelles und umfassendes Feedback • Automatisierte Berichte • Automatische Verteilung Stefan Scheumann
Was ist Hudson nicht • Programmiersprache • Aber benutzt verschiedene Compiler • Build Werkzeug • Aber benutzt Maven und Ant • Versionskontrollsystem • Aber kann mit SVN, GIT und anderen umgehen • Code Analyse Tool • Aber benutzt diese und veröffentlicht die Ergebnisse • Kein Repository • Aber kann Artefakte ausbringen Stefan Scheumann
Hudson aufsetzen • Herunterladen • Entpacken • Deployen (oder stand-alone Server starten) • Java und Build Tool angeben • Neues Projekt anlegen (Maven, Ant oder Sonderform) • Code Repository angeben • Loslegen Stefan Scheumann
Projekt Eigenschaften • Grundeigenschaften • Maven • Ant • Matrix Build • Repository • Build-Auslöser • Report Generierung • Veröffentlichen / weitere Build Prozesse Stefan Scheumann
Hudson Plug-Ins • Mehr als 200 Plug-Ins vorhanden • Unterteilung • Benachrichtigung • Oberfläche • Benutzerverwaltung / Authentifizierung • Build-Auslöser • Post Build / Build Berichte / Veröffentlichen • Build Werkzeuge • Cluster Management / Slave Knoten • Externe Werkzeuge • Maven Tools Stefan Scheumann
Vorteile • Dauerhaftes Rot-Grün-Schema • Wetterbericht • Dokumentation • Test + Testabdeckung • Code Analyse • Veröffentlichen von Artefakten • Verlaufsanzeige • FUN Stefan Scheumann
Nachteile • Automatisiertes Build Skript benötigt • Hoher Speicherplatzverbrauch • Lange Buildzeiten => Lösung: Kleine Projekte mit Abhängigkeiten Stefan Scheumann
Hudson vs. Jenkins • Trennung in Oracle und Open Source • Hudson weiterhin unter Oracle • Jenkins unter Open Source Community Stefan Scheumann
Quellen • http://hudson-ci.org/ • http://jenkins-ci.org/ • http://de.wikipedia.org/wiki/Jenkins_%28Software%29 • Autor Simon West: Continuous Integration mit Hudson, dpunkt.verlag, 2011 • Gunther Popp: Konfigurationsmanagement mit Subversion, Ant und Maven, dpunkt, dpunkt.verlag, 2007 Stefan Scheumann
Danke für Ihre Aufmerksamkeit … • Für weitere Fragen • Stefan Scheumann • Email: sistsche@stud.hs-zigr.de • Oder direkt im Anschluss Stefan Scheumann