Upload
vuongkien
View
220
Download
0
Embed Size (px)
Citation preview
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.
RSS-Feeds
Instant Messenger
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…