Continuous Integration mit Hudson



Ähnliche Dokumente
Continuous Integration mit Hudson

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

Continuous Integration mit Jenkins

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

Konfigurationsmanagement mit Subversion, Maven und Redmine

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

Einreichung zum Call for Papers

HP Service Virtualization. Bernd Schindelasch 19. Juni 2013

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

Konfigurationsmanagement mit Subversion, Ant und Maven

Kopfzeile. Inhaltsverzeichnis

Agile Java-Entwicklung in der Praxis

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

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

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

Auswahl eines Continuous Integrationsservers

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

Konventionen. Danksagung

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

Build-Pipeline mit Jenkins

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

Internet Explorer Version 6

TeamSpeak3 Einrichten

Teilnehmen an einer Lync-Besprechung ohne Nutzung des Lync Clients

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

Einrichtung einer eduroam Verbindung unter dem Betriebssystem Android

Agile Softwareentwicklung

Anleitung auf SEITE 2

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

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

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

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten

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

Was ist neu in Sage CRM 6.1

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

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

Fragebogen: Abschlussbefragung

System Center Essentials 2010

Wärmebildkamera. Arbeitszeit: 15 Minuten

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

ITIL und Entwicklungsmodelle: Die zwei Kulturen

Einstieg in Business Intelligence mit Microsoft SharePoint 2010

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

GPP Projekte gemeinsam zum Erfolg führen

Klausur Software Engineering für WI (EuI)

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

HISPRO ein Service-Angebot von HIS

PCC Outlook Integration Installationsleitfaden

Technical Note 24 SMS Versand über analoge und ISDN Leitungen (Festnetz-SMS)

Produktionsfähige Applikationen

Agile Software Verteilung

Inhaltsverzeichnis. Einführung... 1

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

Stellvertretenden Genehmiger verwalten. Tipps & Tricks

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

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

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

UserManual. Handbuch zur Konfiguration einer FRITZ!Box. Autor: Version: Hansruedi Steiner 2.0, November 2014

Anlegen eines virtuellen http Server unter Exchange 2003 mittels HOSTNAME

Parallels Mac Management 3.5

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

Mailmanagement mit IMAP

Für den Mittelstand ist Wissensmanagement die vordringlichste Aufgabe!

Software- und Druckerzuweisung Selbstlernmaterialien

Deployment Deployment Seite 1 / 25

Erfassung von Umgebungskontext und Kontextmanagement

Agile Softwareentwicklung mit Scrum

Step by Step Softwareverteilung unter Novell. von Christian Bartl

Referenzen Typo3. Blog der Internetagentur Irma Berscheid-Kimeridze Stand: Juni 2015

Produktinformation DaVinci Developer

Kontinuierliche Architekturanalyse. in 3D

Mobile-Szenario in der Integrationskomponente einrichten

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente

Inhaltsverzeichnis. 1 Was ist Business Intelligence?... 23

Daten-Synchronisation zwischen Mozilla Thunderbird (Lightning) / Mozilla Sunbird und dem ZDV Webmailer

Vorwort... 1 Voraussetzungen... 1 Teilnahme am Testmeeting... 2 Browser Add-on für WebEx installieren... 3 Einrichtung des Audiokanals...

1. EINLEITUNG 2. GLOBALE GRUPPEN Globale Gruppen anlegen

Tutorial. Tutorial. Windows XP Service Pack 3 verteilen DeskCenter Solutions AG

Social Media Einsatz in saarländischen Unternehmen. Ergebnisse einer Umfrage im Mai 2014

Anlegen eines SendAs/RecieveAs Benutzer unter Exchange 2003, 2007 und 2010

Avira Server Security Produktupdates. Best Practice

ANYWHERE Zugriff von externen Arbeitsplätzen

CMS.R. Bedienungsanleitung. Modul Cron. Copyright CMS.R Revision 1

Gambio GX2 FAQ. Inhaltsverzeichnis

B12-TOUCH VERSION 3.5

Upgrade auf die Standalone Editionen von Acronis Backup & Recovery 10. Technische Informationen (White Paper)

3 Windows als Storage-Zentrale

Transkript:

Simon Wiest Continuous Integration mit Hudson Grundlagen und Praxiswissen für Einsteiger und Umsteiger dpunkt.verlag

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. Inhaltsverzeichnis 3.8 Unterstützte Prozessverbesserung 29 3.9 Zusammenfassung 29 4 Die Cl-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

7.5 Testwerkzeuge integrieren 132 7.5.1 JUnit, TestNG 132 7.5.2 Weitere Test-Frameworks der xünit-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 Cl-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 * Inhaltsverzeichnis ' 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 Cl-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 Cl-System 285 10.5 Installation des Cl-Systems 286 10.6 Administration des Cl-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