continuous integration mit hudson - simonwiest.de · continuous integration mit hudson (noch)...
Post on 17-Sep-2018
229 Views
Preview:
TRANSCRIPT
Continuous Integrationmit Hudson(Noch) fauler werden in 10 Schritten
Dr. Simon Wiestwww.simonwiest.de
majug² Java User Group Mannheim 27.01.2010, Mannheim
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
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
QARepository Build-System Archive
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 200 Plugins erweitern den Core!
Core
Source Code Management
AccurevBazaarBitKeeperClearCaseCMVCCVS File System SCMGitHarvestMercurialPerforcePVCSSubversion SynergyTeam Foundation ServerTemplate ProjectURLVisual SourceSafe
Über 200 Plugins erweitern den Core!
Core
Source Code Management
Build-Mechanismen
AntBatch FileBuckminsterGantGradleGrailsGroovyKundoMavenMSBuildNantPowerShellRakeRubySConsSCTMExecutorShell scriptSelenium AESSeleniumhq(und weitere)
Über 200 Plugins erweitern den Core!
Core
Source Code Management
Berichte
Build-Mechanismen
CCCCCheckstyleCloverCoberturaCppUnitCrap4JDoxygenDRYEmmaFindBugsGallioGnatGrinderJapexJavadocJavaNCSS+JavaTest Rprt.JUnitMSTest
NCoverNUnitPlotPMD PluginPureCoverageRuby metricsSelenium AESSeleniumhqSerenitecSLOCCountTask ScannerTestability ExplorerViolationsWarningsWebTestPresenter
Über 200 Plugins erweitern den Core!
Core
Source Code Management
Benachrichtigungen Berichte
Build-Mechanismen
CampfireEmailGoogle CalendarhudsonTrackerIRCJabberNabaztagSameTimeStatus MonitorRSSTuxDroidTwitter
Über 200 Plugins erweitern den Core!
Core
Source Code Management
Verteilung vonArtefakten
Berichte
Build-Mechanismen
FTP Publisherjava.net UploaderSCPSFEESVN
Benachrichtigungen
Über 200 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 200 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 200 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 SoftwaretechnikWiesfleckenstrasse 1372810 Gomaringen
www.simonwiest.de
Beratung
hudson-ci.org
Buch Vortrag
Empfohlene Nachlese
HudsonProjektseite. hudson.dev.java.netJBoss Hudson CI Server. hudson.jboss.org/hudsonInterview mit Hudson-Initiator Kohsuke Kawaguchiblogs.sun.com/glassfishpodcast (Episode #007)
Continuous IntegrationWhite Paper von Martin Fowler. www.martinfowler.comCI Feature Matrix. confluence.public.thoughtworks.orgP.M. Duvall: Continuous Integration. 2007.
Projektautomatisierung (allgemein)J. F. Smart: Java Power Tools. 2008.M. Hüttermann: Agile Java-Entwicklung in der Praxis. 2007.
Wie funktionieren die Bären?
Hudson
Monitor-Skript
Netz
Steckdosenleiste
Bären
CGI
HTTP/XML
230 V
Mehr dazu im Hudson Wiki wiki.hudson-ci.org//x/AQA1AQ
Wie funktionieren die Bären?
last.fm, London/UK
Ingenieurbüro Dr. Wiest, Gomaringen
Netzgiganten GmbH, Stuttgart
Bonus-Folie: Hardware aufrüsten lohnt.
CPU
Quelle: „Schneide Blog“ der Softwareschneiderei GmbH, http://schneide.wordpress.com
Hauptspeicher
NetzwerkFestplatte
The Joel (Spolsky) Test
1. Do you use source control? 2. Can you make a build in one step? 3. Do you make daily builds? 4. Do you have a bug database? 5. Do you fix bugs before writing new code? 6. Do you have an up-to-date schedule? 7. Do you have a spec? 8. Do programmers have quiet working conditions? 9. Do you use the best tools money can buy? 10. Do you have testers? 11. Do new candidates write code during their interview? 12. Do you do hallway usability testing?
www.joelonsoftware.com, Aug. 2000
www.rockstardemos.de
top related