Continuous Integration mit Hudson



Ähnliche Dokumente
Continuous Integration mit Hudson

Gradle. Ein kompakter Einstieg in das moderne Build-Management-System ---> Mit einem Geleitwort von Hans Dockter, Erfinder von Gradle

Agile Softwareentwicklung

Einstieg in Business Intelligence mit Microsoft SharePoint 2010

Serbest Hammade / Resh serbest.hammade@hammade.de. Do, 21. Juni 2012

TYPO3 4.3 für Webautoren

Continuous Integration mit Jenkins

Liferay 6.2. Open Source IT-Dienstleister. Ein modernes Open Source Portal System. forwerts solutions GmbH, Gabriele Maas

Java Web Services in der Praxis

Konfigurationsmanagement mit Subversion, Maven und Redmine

Microsoft Windows SharePoint Services v3 - Das offizielle Trainingsbuch

Konfigurationsmanagement mit Subversion, Ant und Maven

Agiles Projekmanagement mit Scrum

Einreichung zum Call for Papers

Content Management mit Joomla! 1.7 für Kids Hanke

Installieren und Konfigurieren von Windows Server Original Microsoft Praxistraining (Buch + E-Book)

HP Service Virtualization. Bernd Schindelasch 19. Juni 2013

Agile Java-Entwicklung in der Praxis

OLXTeamOutlook 1.5 für Outlook 2003, 2002/XP, 2000 und 97/98

Anleitung Typo3-Extension - Raumbuchungssystem

Zwei Wege zur automatisierten SW Verteilung Am Beispiel der Lösungen von Jungheinrich. Matthias Nischwitz,

Echolot Qualitätssicherung mit Sonar

I N F O R M A T I O N V I R T U A L I S I E R U N G. Wir schützen Ihre Unternehmenswerte

Auswahl eines Continuous Integrationsservers

Geschäftsprozessmanagement in der Praxis

Agile Testing. Der agile Weg zur Qualität. von Siegfried Tanczos, Martin Klonk, Richard Seidl, Helmut Pichler, Manfred Baumgartner. 1.

Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

Continuous Delivery. Der pragmatische Einstieg. von Eberhard Wolff. 1. Auflage. dpunkt.verlag 2014

Microsoft Outlook 2010 auf einen Blick

Basiswissen Software-Projektmanagement

Business Application Framework für SharePoint Der Kern aller PSC-Lösungen

Ruby on Rails. Einstieg in die effiziente Webentwicklung -Grundlagen und fortgeschrittene Konzepte -Ajax / Web 2.0 -Einführung in Ruby

Intelligente Updateverwaltung Inventarisierung von Softwareprodukten Remoteunterstützung, mobile Endgeräte u.v.m.

Kopfzeile. Inhaltsverzeichnis

Konventionen. Danksagung

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

Anleitung auf SEITE 2

Anleitung für die Teilnahme an den Platzvergaben "Studio II, Studio IV und Studio VI" im Studiengang Bachelor Architektur SS15

RECY CLE. NAV Easy Security - Ihr schneller Weg zur sicheren Einrichtung von Benutzerrechten

Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

Projektmanagement mit Microsoft Project 2007

Build-Pipeline mit Jenkins

Internet Explorer Version 6

HISPRO ein Service-Angebot von HIS

TeamSpeak3 Einrichten

Teilnehmen an einer Lync-Besprechung ohne Nutzung des Lync Clients

Einrichtung einer eduroam Verbindung unter dem Betriebssystem Android

Look Inside: desite. modellorientiertes Arbeiten im Bauwesen. B.I.M.

UserManual. Konfiguration SWYX PBX zur SIP Trunk Anbindung. Version: 1.0, November 2013

Anleitung auf SEITE 2

News RSS-Export. mit tt_news und pmk_rssnewsexport. Alexander Mürb, Arthur Palmer TYPO3 User Group Stuttgart

Mind Mapping am PC. für Präsentationen, Vorträge, Selbstmanagement. von Isolde Kommer, Helmut Reinke. 1. Auflage. Hanser München 1999

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten

Installation des edu- sharing Plug- Ins für Moodle

firstbird wird gefördert von Microsoft Ventures firstbird is part of Microsoft Ventures Accelerator Berlin

mitp für Kids OpenOffice für Kids von Hans-Georg Schumann 1. Auflage

Was ist neu in Sage CRM 6.1

Innovator 11 classix. Anbindung an Eclipse. Einführung, Installation und Konfiguration. Connect. Michael Kaaden.

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

Mailmanagement mit IMAP

Microsoft Office 365 für kleine Unternehmen Grom

Crashkurs Buchführung für Selbstständige

Wärmebildkamera. Arbeitszeit: 15 Minuten

Fragebogen: Abschlussbefragung

O UTLOOK EDITION. Was ist die Outlook Edition? Installieren der Outlook Edition. Siehe auch:

System Center Essentials 2010

ITIL und Entwicklungsmodelle: Die zwei Kulturen

VMware vrealize Automation Das Praxisbuch

GPP Projekte gemeinsam zum Erfolg führen

Inhaltsverzeichnis. TeiM. V E E.l E.2 E.3 E.4. Vorwort von Stefan Tilkov Einleitung Zielgruppe Über dieses Buch Konventionen Dank

Projektmanagement mit Microsoft Project 2010

Klausur Software Engineering für WI (EuI)

AbaWeb Treuhand. Hüsser Gmür + Partner AG 30. Oktober 2008

PCC Outlook Integration Installationsleitfaden

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Rechtssichere -Archivierung

Produktionsfähige Applikationen

Haufe TaschenGuide 161. Eher in Rente. So geht's. von Andreas Koehler. 3. Auflage Haufe-Lexware Freiburg 2011

Agile Software Verteilung

Whitepaper. Produkt: combit Relationship Manager 7. combit Relationship Manager -rückläufer Script. combit GmbH Untere Laube Konstanz

Stellvertretenden Genehmiger verwalten. Tipps & Tricks

Rechenzentrum der Ruhr-Universität Bochum. Integration von egroupware an der RUB in Outlook 2010 mit Funambol

Fallbeispiel. Auswahl und Evaluierung eines Software- Lokalisierungstools. Tekom Herbsttagung 2004 Angelika Zerfaß

Software modular bauen

PayPal PLUS für Shopware

Einführung in die Informatik Tools

Ihr CMS für die eigene Facebook Page - 1

Team Collaboration im Web 2.0

Parallels Mac Management 3.5

Inhalt. Ästhetik und Marken... 3 Lernen und Bildung... 4 Teilhabe und Anerkennung... 5 Perspektiven... 6

Public Private Partnerships und öffentliche Verschuldung

Die Backup-Voreinstellungen finden Sie in M-System Server unter dem Reiter "Wartung".

Stapelverarbeitung Teil 1

Whitepaper webmethods 9.0. webmethods 9.0. Die Integrationsplattform für BPM, EAI und SOA 2013 SYRACOM AG

Für den Mittelstand ist Wissensmanagement die vordringlichste Aufgabe!

An integrated total solution for automatic job scheduling without user interaction

Deployment Deployment Seite 1 / 25

Transkript:

Continuous Integration mit Hudson Grundlagen und Praxiswissen für Einsteiger und Umsteiger von Simon Wiest 1. Auflage Continuous Integration mit Hudson Wiest schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG dpunkt.verlag 2010 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 89864 690 1

vii 1 Einleitung 1 1.1 Kennen Sie die»integrationshölle«?.................. 1 1.2 Warum Continuous Integration (CI)?................. 3 1.3 Warum Hudson?................................ 4 1.4 Warum dieses Buch?.............................. 6 1.5 Wer dieses Buch lesen sollte........................ 7 1.6 Wie man dieses Buch lesen sollte.................... 9 1.7 Konventionen.................................. 10 1.8 Website zum Buch.............................. 10 1.9 Danksagungen................................. 10 1.10 Zusammenfassung.............................. 11 2 CI in 20 Minuten 13 2.1 Was ist CI?.................................... 13 2.2 Was ist CI nicht?............................... 16 2.3 Software entwickeln ohne CI...................... 18 2.4 Software entwickeln mit CI....................... 19 2.5 Zusammenfassung.............................. 20 3 Welche Vorteile bringt CI? 23 3.1 Reduzierte Risiken.............................. 23 3.2 Verbesserte Produktqualität....................... 24 3.3 Allzeit auslieferbare Produkte...................... 25 3.4 Gesteigerte Effizienz............................. 26 3.5 Dokumentierter Build-Prozess..................... 27 3.6 Höhere Motivation.............................. 28 3.7 Verbesserter Informationsfluss..................... 29

viii 3.8 Unterstützte Prozessverbesserung................... 29 3.9 Zusammenfassung.............................. 29 4 Die CI-Praktiken 31 4.1 Gemeinsame Codebasis........................... 31 4.2 Automatisierter Build............................ 32 4.3 Häufige Integration.............................. 34 4.4 Selbsttestender Build............................. 35 4.4.1 Compiler............................... 35 4.4.2 Unit-Tests.............................. 35 4.4.3 Komponententests........................ 36 4.4.4 Systemtests.............................. 36 4.4.5 Inspektionen............................ 37 4.5 Builds (und Tests) nach jeder Änderung.............. 38 4.6 Schnelle Build-Zyklen............................ 38 4.7 Tests in gespiegelter Produktionsumgebung........... 39 4.8 Einfacher Zugriff auf Build-Ergebnisse............... 40 4.9 Automatisierte Berichte........................... 41 4.10 Automatisierte Ausbringung (Deployment)............ 42 4.11 Zusammenfassung.............................. 43 5 Hudson im Überblick 45 5.1 Die Hudson-Story............................... 45 5.2 Architektur und Konzepte......................... 46 5.2.1 Systemlandschaft......................... 47 5.2.2 Datenmodell............................ 50 5.2.3 Benutzerschnittstellen..................... 55 5.3 Die Top-10-Highlights........................... 60 5.3.1 Schnelle Installation....................... 60 5.3.2 Effiziente Konfiguration.................... 60 5.3.3 Unterstützung zahlreicher Build-Werkzeuge..... 61 5.3.4 Anbindung von Versionsmanagementsystemen.. 61 5.3.5 Testberichte............................. 62 5.3.6 Benachrichtigungen....................... 63 5.3.7 Remoting-Schnittstelle..................... 64 5.3.8 Abhängigkeiten zwischen Jobs............... 64 5.3.9 Multikonfigurationsbuilds (»Matrix-Builds«)... 65 5.3.10 Verteilte Builds.......................... 66 5.3.11 Plugins................................. 67

ix 5.4 Hudson im Vergleich zu Mitbewerbern.............. 67 5.4.1 Proprietäre Eigenentwicklungen............. 68 5.4.2 CruiseControl........................... 69 5.4.3 ThoughtWorks Cruise..................... 72 5.4.4 Atlassian Bamboo........................ 76 5.4.5 JetBrains TeamCity....................... 81 5.5 Zusammenfassung.............................. 86 6 Installieren und Einrichten 87 6.1 Schnellstart in 60 Sekunden....................... 87 6.2 Systemkonfiguration............................ 89 6.3 Fortgeschrittene Installation....................... 90 6.3.1 Systemvoraussetzungen.................... 91 6.3.2 Ablaufumgebungen....................... 92 6.3.3 Datei-Layout............................ 93 6.3.4 Installationsmethoden..................... 95 6.3.5 Starten und Stoppen...................... 96 6.3.6 Aktualisieren............................ 99 6.3.7 Backups.............................. 100 6.3.8 Deinstallation.......................... 103 6.3.9 Plugins............................... 103 6.3.10 Tipps aus der Praxis..................... 104 6.4 Zusammenfassung............................. 106 7 Hudson im täglichen Einsatz 107 7.1 Ihr erster Hudson-Job im Schnelldurchlauf.......... 108 7.1.1 Den ersten Job einrichten................. 108 7.1.2 Statusanzeigen auf der Übersichtsseite........ 112 7.2 Jobtypen..................................... 114 7.2.1 Gemeinsamkeiten....................... 114 7.2.2 Free-Style-Projekt....................... 116 7.2.3 Maven-2-Projekt........................ 117 7.2.4 Multikonfigurationsprojekt (»Matrix-Builds«). 118 7.2.5 Überwachung eines externen Jobs........... 118 7.3 Versionsmanagement integrieren.................. 120 7.3.1 Konfiguration eines Projekts............... 120 7.3.2 Repository-Browser anbinden.............. 124 7.4 Auslösen von Builds............................ 126 7.4.1 Manuell (build trigger)................... 127 7.4.2 Zeitgesteuert........................... 127 7.4.3 Bei Änderungen im Versionsmanagementsystem 128 7.4.4 Abhängigkeiten zu anderen Projekten........ 129 7.4.5 Auslösung durch Plugins.................. 131

x 7.5 Testwerkzeuge integrieren........................ 131 7.5.1 JUnit, TestNG.......................... 132 7.5.2 Weitere Test-Frameworks der xunit-familie... 135 7.6 Benachrichtigungen verschicken................... 136 7.6.1 E-Mail................................ 136 7.6.2 Email-ext (Plugin)....................... 138 7.6.3 RSS-Feeds............................. 140 7.6.4 Hudson Build Monitor (Firefox Add-on)...... 141 7.6.5 Twitter (Plugin)......................... 141 7.6.6 hudson-eclipse (Eclipse-Plugin)............. 142 7.6.7 Informationsradiatoren................... 143 7.6.8 extreme-feedback-geräte anbinden......... 144 7.7 Dokumentationswerkzeuge integrieren.............. 146 7.7.1 Javadoc............................... 146 7.7.2 Maven Site............................. 148 7.7.3 Einbindung beliebiger HTML-Berichte....... 148 7.8 Analysewerkzeuge integrieren..................... 151 7.8.1 Checkstyle, PMD, FindBugs................ 151 7.8.2 Warnings (Plugin)....................... 156 7.8.3 Task Scanner (Plugin).................... 156 7.8.4 Cobertura (Plugin)....................... 158 7.8.5 Sonar (Plugin).......................... 161 7.9 Issue-Tracker integrieren......................... 163 7.9.1 Atlassian JIRA.......................... 164 7.9.2 Mantis................................ 168 7.10 Zusammenfassung............................. 169 8 Hudson für Fortgeschrittene 171 8.1 Parametrisierte Builds........................... 171 8.1.1 Definition von Parametern................. 172 8.1.2 Typische Anwendungsfälle................. 173 8.2 Ansichten (views) und Dashboards................. 175 8.2.1 Benutzerdefinierte Listenansichten........... 175 8.2.2 Projekte filtern und gruppieren............. 176 8.2.3 Verschachtelte Ansichten.................. 178 8.2.4 Hudson als Ihr Build-Portal................ 178 8.3 Parallelisierung der Build-Aktivitäten............... 179 8.3.1 Abhängigkeiten zwischen Projekten.......... 181 8.3.2 Nachgelagerte Builds zusammenführen....... 185 8.3.3 Exklusiver Zugriff auf Ressourcen........... 186 8.3.4 Parameterübergabe an nachgelagerte Builds.... 187 8.3.5 Abbruch hängender Builds................. 188

xi 8.4 Multikonfigurationsprojekte..................... 189 8.4.1 Anlegen eines Multikonfigurationsprojekts.... 190 8.4.2 Verteilte Matrix-Builds................... 192 8.4.3 Zusammenfassung der Build-Ergebnisse...... 193 8.5 Verteilte Builds................................ 194 8.5.1 Warum verteilen?....................... 194 8.5.2 Warum nicht verteilen?................... 194 8.5.3 Slave-Knoten einrichten.................. 195 8.5.4 Verteilen der Build-Umgebung............. 198 8.5.5 Überwachen des CI-Clusters............... 200 8.5.6 Virtualisierung......................... 201 8.5.7 Bauen in der Wolke...................... 206 8.6 Hudson absichern............................. 212 8.6.1 Authentifizierung....................... 213 8.6.2 Autorisierung.......................... 217 8.6.3 Auditierung............................ 218 8.7 Weitere nützliche Plugins........................ 220 8.7.1 Claim................................ 220 8.7.2 Configuration Slicing.................... 221 8.7.3 Build-Promotion........................ 223 8.7.4 Description Setter....................... 225 8.7.5 Green Balls............................ 226 8.7.6 Locale................................ 227 8.7.7 Continuous Integration Game.............. 227 8.8 Zusammenfassung............................. 228 9 Hudson erweitern 229 9.1 Erste Schritte................................. 230 9.1.1 Schnellstart: Ihr erstes Plugin in 60 Sekunden.. 230 9.1.2 Anatomie eines Plugins................... 234 9.1.3 Einrichten einer Entwicklungsumgebung...... 240 9.1.4 Zusammenfassung...................... 245 9.2 Hudsons Plugin-Konzept........................ 245 9.2.1 Hudsons Technologie-Stapel............... 245 9.2.2 Was muss ein Plugin-Entwickler wissen?...... 248 9.2.3 Hudsons Erweiterungspunkte (Extension Points)....................... 250

xii 9.3 Beispiel: Das Plugin»Artifact Size«................. 263 9.3.1 Die Aufgabe............................ 263 9.3.2 Erweiterungspunkt»ListViewColumn«....... 264 9.3.3 Erweiterungspunkte»Recorder«und»Action«. 269 9.3.4 Erweiterungspunkt»CLICommand«......... 272 9.3.5 Bereitstellen der Artefaktgröße per XML-API.. 275 9.3.6 Online-Hilfetexte........................ 276 9.3.7 Lokalisierung und Internationalisierung....... 277 9.4 Zusammenfassung............................. 282 10 Aufwand einer CI-Einführung 283 10.1 Erstaufwand für Vollautomatisierung des Builds....... 283 10.2 Erstaufwand für Erstellung von fehlenden Tests....... 284 10.3 Optimieren des Build-Prozesses für CI.............. 285 10.4 Hardwareressourcen für ein CI-System.............. 285 10.5 Installation des CI-Systems....................... 286 10.6 Administration des CI-Systems.................... 286 10.7 Schulung..................................... 287 10.8 Zusammenfassung............................. 288 11 Tipps zur Einführung von CI 289 11.1 Mit einem Pilotprojekt starten.................... 289 11.2 Build-Zeiten kurz halten......................... 290 11.3 Codeanalyse: Sanft starten, konstant steigern......... 290 11.4 Nur messen, was auch beachtet wird............... 291 11.5 Erscheinen neuer Plugins verfolgen................. 291 11.6 Den Spaß nicht vergessen........................ 292 12 Fazit und Ausblick 293 12.1 Continuous Integration wie geht s weiter?.......... 293 12.2 Hudson wie geht s weiter?...................... 294 12.3 Zusammenfassung............................. 296 Literatur und Quellen 297 Index 299