Continuous Integration mit Hudson - Java User Group ... · Java Architekt Projektleiter CI-Coach...

Post on 17-Sep-2018

219 views 0 download

Transcript of Continuous Integration mit Hudson - Java User Group ... · Java Architekt Projektleiter CI-Coach...

Continuous Integrationmit Hudson

Dr. Simon Wiestwww.simonwiest.de

Java User Group Switzerland26.04.2010, Technopark Zürich

Gestatten, Hudson.

Agenda

Überblick

10 Schritte

Über den Referenten: Dr. Simon Wiest

Privat: Hudson-Committer Beruflich: Hudson-Anwender

Lokalisierung DE

InternationalisierungPlug-In Entwickler

Support & Evangelisierung

Java Architekt

Projektleiter

CI-Coach

IT-Freiberufler

Was ist kontinuierliche Integration (CI)?

Was ist kontinuierliche Integration (CI)?orchestriert durch CI-System

Was ist kontinuierliche Integration (CI)?

SubversionCVSPerforceGit…

AntMavenShell-SkriptBatch-Datei…

JUnitTestNGCheckStylePMD…

CI-System

Reporting

QARepositoryBuild-

SystemArchive

Check-Out

Check-In

Developer Artefacts

Reports

Hudson auf einen Blick

Java-basierte Web-Anwendung

Initiiert 2006/2007 von Kohsuke Kawaguchi (Sun)

Teil des Projekts Glassfish

Open Source (MIT Lizenz)

1,24 Mio. LOC (mit Plugins)

Zur Zeit 200+ Plug-Ins

180+ Beitragende

Wer verwendet Hudson (und darf es zugeben)?

Quelle: Kohsuke Kawaguchi, wiki.hudson-ci.org//x/EYQ5Ag

Hudson: Ein Projekt in voller Fahrt.

Agenda

Überblick

10 Schritte

1. Installation: Denkbar einfach.

Winstone(Eingebettet)

JettyTomcatWebSphere

Download als WAR-Datei

Ca. 26 MB

2. Konfiguration: Komfortabel und übersichtlich.

Wann immer möglich, werden Konventionen oder sinnvolle Vorgabewerte verwendet.

Web-Interface XML-Konfigurationsdateien

3. Build-Systeme: Java – und darüber hinaus!

Primär-Artefakt

Dokumentation

TestergebnisseEingebautAntMavenShell SkriptWindows Batch

Über Plug-InsGant, GroovyMSBuild, NantRake, Rubyund viele mehr!

4. Berichten: Grenzenlos durch Plugins.

Eingebaut

JUnit

TestNG

Über Plug-Ins

CheckStyle

PMD

FindBugs

Simian

u.v.m.

5. Source Code Repositories: Mehr als nur „Auschecken“.

Repository

HudsonRepository

Browser

6. Benachrichtigungen: Viele Kanäle stehen offen.

E-Mail

RSS-Feeds

Instant Messenger

Twitter

Plugins für IDEs & Browser

Desktop-Gadgets

7. Remote API: Hudson lässt sich einfach automatisieren.

Hudson

Jobs importierenStatus anzeigen

HTMLHTML,

XML, JSON

HTML, CLI

Photos (von links): Simon Wiest, Daniel Lindner, violet.net, Hartmut Lang

8. Abhängigkeiten zwischen Jobs: Intelligentes Bauen.

Abhängigkeiten zwischen Komponenten

Abhängigkeiten zwischenBuild-Schritten

CORE GUI DB

APP

Compile Check

Test 2

Test 1

Docs

Pack

9. Matrix-Builds: Hudson übernimmt die Fleißarbeit.

LinuxWindows

Achse „Betriebssystem“

JDK 1.5

JDK 1.6

Achse„JDK“

Cloud

10.Verteilte Builds: Skalierbare Leistung mit OS-Vielfalt.

Master

lokale Builds verteilte Builds

virtualisiert

LinuxMac OS X Windows

Zusammenfassung: Alle 10 Schritte auf einen Blick

Installation

Konfiguration

Build-Support

Berichte

SCM-Integration

Kommunikation

Remote-API/CLI

Abhängige Jobs

Matrix-Builds

Verteilte Builds

Haben wir da nicht etwas vergessen?

Bisher hauptsächlichcore-Features gezeigt!

Über 200 Plugins erweitern den Core!

Update-Center für einfache Installation und Aktualisierung

1–2 neue Plugins pro Woche(!)

Maven-Tools für Plugin-Entwicklung

Gute Unterstützung durch Developer-Mailingliste

Core

Plugins

Über 180 Plugins erweitern den Core!

Core

Source Code Management

AccurevBazaarBitKeeperClearCaseCMVCCVS File System SCMGitHarvestMercurialPerforcePVCSSubversion SynergyTeam Foundation ServerTemplate ProjectURLVisual SourceSafe

Über 180 Plugins erweitern den Core!

Core

Source Code Management

Build-Mechanismen

AntBatch FileBuckminsterGantGradleGrailsGroovyKundoMavenMSBuildNantPowerShellRakeRubySConsSCTMExecutorShell scriptSelenium AESSeleniumhq(und weitere)

Über 180 Plugins erweitern den Core!

Core

Source Code Management

Berichte

Build-Mechanismen

CCCCCheckstyleCloverCoberturaCppUnitCrap4JDoxygenDRYEmmaFindBugsGallioGnatGrinderJapexJavadocJavaNCSS+JavaTest Rprt.JUnitMSTest

NCoverNUnitPlotPMD PluginPureCoverageRuby metricsSelenium AESSeleniumhqSerenitecSLOCCountTask ScannerTestability ExplorerViolationsWarningsWebTestPresenter

Über 180 Plugins erweitern den Core!

Core

Source Code Management

Benachrichtigungen Berichte

Build-Mechanismen

CampfireEmailGoogle CalendarhudsonTrackerIRCJabberNabaztagSameTimeStatus MonitorRSSTuxDroidTwitter

Über 180 Plugins erweitern den Core!

Core

Source Code Management

Verteilung vonArtefakten

Berichte

Build-Mechanismen

FTP Publisherjava.net UploaderSCPSFEESVN

Benachrichtigungen

Über 180 Plugins erweitern den Core!

Core

Source Code Management

Integration mitDrittsystemen

Berichte

Build-Mechanismen

Benachrichtigungen

Verteilung vonArtefakten

Active DirectoryAndroid AppAudit TrailBacklogBugzillaCluster mgmt.CrowdFirefox Add-onGithubGoogle Calend.Google CodeGoogle DesktopHGCAHadoopiPhone AppJIRAJava.netKagemaiLDAP Email

MantisPXEPolarionRedmineRegEx EmailSFEESeleniumSonarSwarmTracWindows Tray

Über 180 Plugins erweitern den Core!

Core

Source Code Management

„Build Wrapper“

Berichte

Build-Mechanismen

Hudson Central. Job(Re)Action Hudson Distr. Workspace CleanLocks and LatchesM2 Extra StepsM2 ReleaseReleaseTemplate ProjectVMwareXvncZenTimestamp

Benachrichtigungen

Integration mitDrittsystemen Verteilung von

Artefakten

Über 180 Plugins erweitern den Core!

Core

Source Code Management

Berichte

Build-Mechanismen

Nützliches& Schräges

Build-timeoutChange Log HistoryClaimConfiguration SlicingCygpathEmotional HudsonGoogle AnalyticsGreen BallsJBPMLocalePort AllocatorPromoted BuildsRadiator ViewRetry Failed BuildsSectioned ViewSidebar-LinkSlave-statusContinuous Integration Game

Benachrichtigungen

Integration mitDrittsystemen Verteilung von

Artefakten

„Build Wrapper“

Plugin „Continuous Integration Game“

Agenda

Überblick

10 Schritte

HERUNTERLADEN

EINSETZEN

WEITERSAGEN

MITMACHEN

Dr. Wiest – Ingenieurbüro für Softwaretechnikwww.simonwiest.de

Beratung

hudson-ci.org

BuchVortragKostenlose Vor-Ort

EinführungsvorträgeSprechen Sie mich an!

„CI mit Hudson“dpunkt.verlag Herbst 2010

Individuelle Beratung zu Buildmanagement, Werkzeug-Evaluation

Und wenn Sie Lust auf mehr haben…