O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Continuous Integration mit Hudson – Jenkins

Book Description

  • Continuous Integration wird so wichtig wie Unit-Testing, und Hudson ist das beste Open-Source-Tool dafür.+ Autor ist Hudson-Comitter + Geleitwort von Hudson-Initiator Kohsuke Kawaguchi+ Erstes Hudson-Buch weltweit

Table of Contents

  1. Cover
  2. Titel
  3. Impressum
  4. Geleitwort von Kohsuke Kawaguchi
  5. Inhaltsverzeichnis
  6. 1 Einleitung
    1. 1.1 Kennen Sie die »Integrationshölle«?
    2. 1.2 Warum Continuous Integration (CI)?
    3. 1.3 Warum Hudson?
    4. 1.4 Warum dieses Buch?
    5. 1.5 Wer dieses Buch lesen sollte
    6. 1.6 Wie man dieses Buch lesen sollte
    7. 1.7 Konventionen
    8. 1.8 Website zum Buch
    9. 1.9 Danksagungen
    10. 1.10 Zusammenfassung
  7. 2 CI in 20 Minuten
    1. 2.1 Was ist CI?
    2. 2.2 Was ist CI nicht?
    3. 2.3 Software entwickeln ohne CI
    4. 2.4 Software entwickeln mit CI
    5. 2.5 Zusammenfassung
  8. 3 Welche Vorteile bringt CI?
    1. 3.1 Reduzierte Risiken
    2. 3.2 Verbesserte Produktqualität
    3. 3.3 Allzeit auslieferbare Produkte
    4. 3.4 Gesteigerte Effizienz
    5. 3.5 Dokumentierter Build-Prozess
    6. 3.6 Höhere Motivation
    7. 3.7 Verbesserter Informationsfluss
    8. 3.8 Unterstützte Prozessverbesserung
    9. 3.9 Zusammenfassung
  9. 4 Die CI-Praktiken
    1. 4.1 Gemeinsame Codebasis
    2. 4.2 Automatisierter Build
    3. 4.3 Häufige Integration
    4. 4.4 Selbsttestender Build
      1. 4.4.1 Compiler
      2. 4.4.2 Unit-Tests
      3. 4.4.3 Komponententests
      4. 4.4.4 Systemtests
      5. 4.4.5 Inspektionen
    5. 4.5 Builds (und Tests) nach jeder Änderung
    6. 4.6 Schnelle Build-Zyklen
    7. 4.7 Tests in gespiegelter Produktionsumgebung
    8. 4.8 Einfacher Zugriff auf Build-Ergebnisse
    9. 4.9 Automatisierte Berichte
    10. 4.10 Automatisierte Ausbringung (Deployment)
    11. 4.11 Zusammenfassung
  10. 5 Hudson im Überblick
    1. 5.1 Die Hudson-Story
    2. 5.2 Architektur und Konzepte
      1. 5.2.1 Systemlandschaft
      2. 5.2.2 Datenmodell
      3. 5.2.3 Benutzerschnittstellen
    3. 5.3 Die Top-10-Highlights
      1. 5.3.1 Schnelle Installation
      2. 5.3.2 Effiziente Konfiguration
      3. 5.3.3 Unterstützung zahlreicher Build-Werkzeuge
      4. 5.3.4 Anbindung von Versionsmanagementsystemen
      5. 5.3.5 Testberichte
      6. 5.3.6 Benachrichtigungen
      7. 5.3.7 Remoting-Schnittstelle
      8. 5.3.8 Abhängigkeiten zwischen Jobs
      9. 5.3.9 Multikonfigurationsbuilds (»Matrix-Builds«)
      10. 5.3.10 Verteilte Builds
      11. 5.3.11 Plugins
    4. 5.4 Hudson im Vergleich zu Mitbewerbern
      1. 5.4.1 Proprietäre Eigenentwicklungen
      2. 5.4.2 CruiseControl
      3. 5.4.3 ThoughtWorks Cruise
      4. 5.4.4 Atlassian Bamboo
      5. 5.4.5 JetBrains TeamCity
    5. 5.5 Zusammenfassung
  11. 6 Installieren und Einrichten
    1. 6.1 Schnellstart in 60 Sekunden
    2. 6.2 Systemkonfiguration
    3. 6.3 Fortgeschrittene Installation
      1. 6.3.1 Systemvoraussetzungen
      2. 6.3.2 Ablaufumgebungen
      3. 6.3.3 Datei-Layout
      4. 6.3.4 Installationsmethoden
      5. 6.3.5 Starten und Stoppen
      6. 6.3.6 Aktualisieren
      7. 6.3.7 Backups
      8. 6.3.8 Deinstallation
      9. 6.3.9 Plugins
      10. 6.3.10 Tipps aus der Praxis
    4. 6.4 Zusammenfassung
  12. 7 Hudson im täglichen Einsatz
    1. 7.1 Ihr erster Hudson-Job im Schnelldurchlauf
      1. 7.1.1 Den ersten Job einrichten
      2. 7.1.2 Statusanzeigen auf der Übersichtsseite
    2. 7.2 Jobtypen
      1. 7.2.1 Gemeinsamkeiten
      2. 7.2.2 Free-Style-Projekt
      3. 7.2.3 Maven-2-Projekt
      4. 7.2.4 Multikonfigurationsprojekt (»Matrix-Builds«)
      5. 7.2.5 Überwachung eines externen Jobs
    3. 7.3 Versionsmanagement integrieren
      1. 7.3.1 Konfiguration eines Projekts
      2. 7.3.2 Repository-Browser anbinden
    4. 7.4 Auslösen von Builds
      1. 7.4.1 Manuell (build trigger)
      2. 7.4.2 Zeitgesteuert
      3. 7.4.3 Bei Änderungen im Versionsmanagementsystem
      4. 7.4.4 Abhängigkeiten zu anderen Projekten
      5. 7.4.5 Auslösung durch Plugins
    5. 7.5 Testwerkzeuge integrieren
      1. 7.5.1 JUnit, TestNG
      2. 7.5.2 Weitere Test-Frameworks der xUnit-Familie
    6. 7.6 Benachrichtigungen verschicken
      1. 7.6.1 E-Mail
      2. 7.6.2 Email-ext (Plugin)
      3. 7.6.3 RSS-Feeds
      4. 7.6.4 Hudson Build Monitor (Firefox Add-on)
      5. 7.6.5 Twitter (Plugin)
      6. 7.6.6 hudson-eclipse (Eclipse-Plugin)
      7. 7.6.7 Informationsradiatoren
      8. 7.6.8 eXtreme-Feedback-Geräte anbinden
    7. 7.7 Dokumentationswerkzeuge integrieren
      1. 7.7.1 Javadoc
      2. 7.7.2 Maven Site
      3. 7.7.3 Einbindung beliebiger HTML-Berichte
    8. 7.8 Analysewerkzeuge integrieren
      1. 7.8.1 Checkstyle, PMD, FindBugs
      2. 7.8.2 Warnings (Plugin)
      3. 7.8.3 Task Scanner (Plugin)
      4. 7.8.4 Cobertura (Plugin)
      5. 7.8.5 Sonar (Plugin)
    9. 7.9 Issue-Tracker integrieren
      1. 7.9.1 Atlassian JIRA
      2. 7.9.2 Mantis
    10. 7.10 Zusammenfassung
  13. 8 Hudson für Fortgeschrittene
    1. 8.1 Parametrisierte Builds
      1. 8.1.1 Definition von Parametern
      2. 8.1.2 Typische Anwendungsfälle
    2. 8.2 Ansichten (views) und Dashboards
      1. 8.2.1 Benutzerdefinierte Listenansichten
      2. 8.2.2 Projekte filtern und gruppieren
      3. 8.2.3 Verschachtelte Ansichten
      4. 8.2.4 Hudson als Ihr Build-Portal
    3. 8.3 Parallelisierung der Build-Aktivitäten
      1. 8.3.1 Abhängigkeiten zwischen Projekten
      2. 8.3.2 Nachgelagerte Builds zusammenführen
      3. 8.3.3 Exklusiver Zugriff auf Ressourcen
      4. 8.3.4 Parameterübergabe an nachgelagerte Builds
      5. 8.3.5 Abbruch hängender Builds
    4. 8.4 Multikonfigurationsprojekte
      1. 8.4.1 Anlegen eines Multikonfigurationsprojekts
      2. 8.4.2 Verteilte Matrix-Builds
      3. 8.4.3 Zusammenfassung der Build-Ergebnisse
    5. 8.5 Verteilte Builds
      1. 8.5.1 Warum verteilen?
      2. 8.5.2 Warum nicht verteilen?
      3. 8.5.3 Slave-Knoten einrichten
      4. 8.5.4 Verteilen der Build-Umgebung
      5. 8.5.5 Überwachen des CI-Clusters
      6. 8.5.6 Virtualisierung
      7. 8.5.7 Bauen in der Wolke
    6. 8.6 Hudson absichern
      1. 8.6.1 Authentifizierung
      2. 8.6.2 Autorisierung
      3. 8.6.3 Auditierung
    7. 8.7 Weitere nützliche Plugins
      1. 8.7.1 Claim
      2. 8.7.2 Configuration Slicing
      3. 8.7.3 Build-Promotion
      4. 8.7.4 Description Setter
      5. 8.7.5 Green Balls
      6. 8.7.6 Locale
      7. 8.7.7 Continuous Integration Game
    8. 8.8 Zusammenfassung
  14. 9 Hudson erweitern
    1. 9.1 Erste Schritte
      1. 9.1.1 Schnellstart: Ihr erstes Plugin in 60 Sekunden
      2. 9.1.2 Anatomie eines Plugins
      3. 9.1.3 Einrichten einer Entwicklungsumgebung
      4. 9.1.4 Zusammenfassung
    2. 9.2 Hudsons Plugin-Konzept
      1. 9.2.1 Hudsons Technologie-Stapel
      2. 9.2.2 Was muss ein Plugin-Entwickler wissen?
      3. 9.2.3 Hudsons Erweiterungspunkte (Extension Points)
    3. 9.3 Beispiel: Das Plugin »Artifact Size«
      1. 9.3.1 Die Aufgabe
      2. 9.3.2 Erweiterungspunkt »ListViewColumn«
      3. 9.3.3 Erweiterungspunkte »Recorder« und »Action«
      4. 9.3.4 Erweiterungspunkt »CLICommand«
      5. 9.3.5 Bereitstellen der Artefaktgröße per XML-API
      6. 9.3.6 Online-Hilfetexte
      7. 9.3.7 Lokalisierung und Internationalisierung
    4. 9.4 Zusammenfassung
  15. 10 Aufwand einer CI-Einführung
    1. 10.1 Erstaufwand für Vollautomatisierung des Builds
    2. 10.2 Erstaufwand für Erstellung von fehlenden Tests
    3. 10.3 Optimieren des Build-Prozesses für CI
    4. 10.4 Hardwareressourcen für ein CI-System
    5. 10.5 Installation des CI-Systems
    6. 10.6 Administration des CI-Systems
    7. 10.7 Schulung
    8. 10.8 Zusammenfassung
  16. 11 Tipps zur Einführung von CI
    1. 11.1 Mit einem Pilotprojekt starten
    2. 11.2 Build-Zeiten kurz halten
    3. 11.3 Codeanalyse: Sanft starten, konstant steigern
    4. 11.4 Nur messen, was auch beachtet wird
    5. 11.5 Erscheinen neuer Plugins verfolgen
    6. 11.6 Den Spaß nicht vergessen
  17. 12 Fazit und Ausblick
    1. 12.1 Continuous Integration – wie geht’s weiter?
    2. 12.2 Hudson – wie geht’s weiter?
    3. 12.3 Zusammenfassung
  18. Literatur und Quellen
  19. Index