Continuous Integration
mit Hudson
(Noch) fauler werden in 10 Schritten



Dr. Simon Wiest
www.simonwiest.de


majug² Java ...
Gestatten, Hudson.
Agenda




             10 Schritte



         Überblick
Über den Referenten: Dr. Simon Wiest

       Privat: Hudson-Committer                Beruflich: Hudson-Anwender




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


...
Hudson auf einen Blick


  Java-basierte Web-Anwendung
  Initiiert 2006/2007 von
  Kohsuke Kawaguchi (Sun)
  Teil des Proj...
Wer verwendet Hudson (und darf es zugeben)?




Quelle: Kohsuke Kawaguchi, wiki.hudson-ci.org//x/EYQ5Ag
Hudson: Ein Projekt in voller Fahrt.
Agenda




             10 Schritte



         Überblick
1. Installation: Denkbar einfach.


                                    Download als
                                     ...
2. Konfiguration: Komfortabel und übersichtlich.




           Web-Interface                    XML-Konfigurationsdateien...
3. Build-Systeme: Java – und darüber hinaus!




                                                Primär-Artefakt



      ...
4. Berichten: Grenzenlos durch Plugins.


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

                                       Repository
          Hudso...
6. Benachrichtigungen: Viele Kanäle stehen offen.


                               E-Mail

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


                                                               ...
8. Abhängigkeiten zwischen Jobs: Intelligentes Bauen.


                      APP

                                       ...
9. Matrix-Builds: Hudson übernimmt die Fleißarbeit.
                      Achse „Betriebssystem“
                    Windo...
10.Verteilte Builds: Skalierbare Leistung mit OS-Vielfalt.


                                              Cloud




     ...
Zusammenfassung: Alle 10 Schritte auf einen Blick


  Installation                  Kommunikation

  Konfiguration        ...
Haben wir da nicht etwas vergessen?




                    Bisher hauptsächlich
                    core-Features gezeigt!
Über 200 Plugins erweitern den Core!


                                       Update-Center für
                  Core
   ...
Über 200 Plugins erweitern den Core!


                                       Accurev
                  Core              ...
Über 200 Plugins erweitern den Core!


                                       Ant
                  Core                 B...
Über 200 Plugins erweitern den Core!


                                       CCCC             NCover
                  Co...
Über 200 Plugins erweitern den Core!


                                       Campfire
                    Core           ...
Über 200 Plugins erweitern den Core!


                                        FTP Publisher
                    Core     ...
Über 200 Plugins erweitern den Core!


                                       Active Directory Mantis
                    ...
Über 200 Plugins erweitern den Core!


                                       Hudson Central. Job(Re)Action
              ...
Über 200 Plugins erweitern den Core!


                                       Build-timeout
                    Core      ...
Plugin „Continuous Integration Game“
Agenda




             10 Schritte



         Überblick
HERUNTERLADEN
EINSETZEN
WEITERSAGEN
MITMACHEN
hudson-ci.org


 Beratung           Buch               Vortrag

Dr. Wiest – Ingenieurbüro für Softwaretechnik
Wiesfleckens...
Empfohlene Nachlese


  Hudson
    Projektseite. hudson.dev.java.net
    JBoss Hudson CI Server. hudson.jboss.org/hudson
 ...
Wie funktionieren die Bären?

                                       Mehr dazu im Hudson Wiki
                            ...
Wie funktionieren die Bären?




                     Ingenieurbüro Dr. Wiest,
                           Gomaringen

    ...
Bonus-Folie: Hardware aufrüsten lohnt.




                       CPU                                  Hauptspeicher




 ...
The Joel (Spolsky) Test

1.   Do you use source control?
2.   Can you make a build in one step?
3.   Do you make daily bui...
www.rockstardemos.de
Continuous Integration mit Hudson (JUG Mannheim, 27.01.2010)
Continuous Integration mit Hudson (JUG Mannheim, 27.01.2010)
Continuous Integration mit Hudson (JUG Mannheim, 27.01.2010)
Continuous Integration mit Hudson (JUG Mannheim, 27.01.2010)
Continuous Integration mit Hudson (JUG Mannheim, 27.01.2010)
Continuous Integration mit Hudson (JUG Mannheim, 27.01.2010)
Continuous Integration mit Hudson (JUG Mannheim, 27.01.2010)
Continuous Integration mit Hudson (JUG Mannheim, 27.01.2010)
Nächste SlideShare
Wird geladen in …5
×

Continuous Integration mit Hudson (JUG Mannheim, 27.01.2010)

5.161 Aufrufe

Veröffentlicht am

Introduction to the OpenSource-CI-System Hudson (in German). Presented on 27.01.2010 at the Java User Group Mannheim (majug²).

Veröffentlicht in: Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
5.161
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
59
Aktionen
Geteilt
0
Downloads
75
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Continuous Integration mit Hudson (JUG Mannheim, 27.01.2010)

  1. 1. Continuous Integration mit Hudson (Noch) fauler werden in 10 Schritten Dr. Simon Wiest www.simonwiest.de majug² Java User Group Mannheim 27.01.2010, Mannheim
  2. 2. Gestatten, Hudson.
  3. 3. Agenda 10 Schritte Überblick
  4. 4. Über den Referenten: Dr. Simon Wiest Privat: Hudson-Committer Beruflich: Hudson-Anwender Lokalisierung DE Projektleiter Internationalisierung Java Architekt Plug-In Entwickler Coach Support & Evangelisierung IT-Freiberufler
  5. 5. Was ist kontinuierliche Integration (CI)?
  6. 6. Was ist kontinuierliche Integration (CI)? orchestriert durch CI-System
  7. 7. Was ist kontinuierliche Integration (CI)? CI-System Reports Reporting Check-Out Build- Developer Repository Artefacts QA Archive System Check-In Subversion Ant JUnit CVS Maven TestNG Perforce Shell-Skript CheckStyle Git Batch-Datei PMD … … …
  8. 8. 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
  9. 9. Wer verwendet Hudson (und darf es zugeben)? Quelle: Kohsuke Kawaguchi, wiki.hudson-ci.org//x/EYQ5Ag
  10. 10. Hudson: Ein Projekt in voller Fahrt.
  11. 11. Agenda 10 Schritte Überblick
  12. 12. 1. Installation: Denkbar einfach. Download als WAR-Datei Ca. 26 MB WebSphere Tomcat Jetty Winstone (Eingebettet)
  13. 13. 2. Konfiguration: Komfortabel und übersichtlich. Web-Interface XML-Konfigurationsdateien Wann immer möglich, werden Konventionen oder sinnvolle Vorgabewerte verwendet.
  14. 14. 3. Build-Systeme: Java – und darüber hinaus! Primär-Artefakt Dokumentation Eingebaut Über Plug-Ins Testergebnisse Ant Gant, Groovy Maven MSBuild, Nant Shell Skript Rake, Ruby Windows Batch und viele mehr!
  15. 15. 4. Berichten: Grenzenlos durch Plugins. Eingebaut JUnit TestNG Über Plug-Ins CheckStyle PMD FindBugs Simian u.v.m.
  16. 16. 5. Source Code Repositories: Mehr als nur „Auschecken“. Repository Hudson Browser Repository
  17. 17. 6. Benachrichtigungen: Viele Kanäle stehen offen. E-Mail RSS-Feeds Instant Messenger Twitter Plugins für IDEs & Browser Desktop-Gadgets
  18. 18. 7. Remote API: Hudson lässt sich einfach automatisieren. HTML, HTML XML, JSON HTML, CLI Hudson Status anzeigen Jobs importieren Photos (von links): Simon Wiest, Daniel Lindner, violet.net, Hartmut Lang
  19. 19. 8. Abhängigkeiten zwischen Jobs: Intelligentes Bauen. APP Abhängigkeiten zwischen GUI DB Komponenten CORE Test 1 Compile Check Abhängigkeiten Pack zwischen Test 2 Build-Schritten Docs
  20. 20. 9. Matrix-Builds: Hudson übernimmt die Fleißarbeit. Achse „Betriebssystem“ Windows Linux JDK 1.5 Achse „JDK“ JDK 1.6
  21. 21. 10.Verteilte Builds: Skalierbare Leistung mit OS-Vielfalt. Cloud Master Mac OS X Linux Windows virtualisiert lokale Builds verteilte Builds
  22. 22. Zusammenfassung: Alle 10 Schritte auf einen Blick Installation Kommunikation Konfiguration Remote-API/CLI Build-Support Abhängige Jobs Berichte Matrix-Builds SCM-Integration Verteilte Builds
  23. 23. Haben wir da nicht etwas vergessen? Bisher hauptsächlich core-Features gezeigt!
  24. 24. Über 200 Plugins erweitern den Core! Update-Center für Core einfache Installation und Aktualisierung 1–2 neue Plugins pro Woche(!) Plugins Maven-Tools für Plugin-Entwicklung Gute Unterstützung durch Developer- Mailingliste
  25. 25. Über 200 Plugins erweitern den Core! Accurev Core Bazaar BitKeeper ClearCase CMVC CVS File System SCM Git Harvest Mercurial Perforce PVCS Subversion Synergy Team Foundation Server Source Code Template Project Management URL Visual SourceSafe
  26. 26. Über 200 Plugins erweitern den Core! Ant Core Batch File Buckminster Gant Gradle Grails Groovy Kundo Maven MSBuild Nant PowerShell Rake Ruby SCons Build- Source Code SCTMExecutor Mechanismen Management Shell script Selenium AES Seleniumhq (und weitere)
  27. 27. Über 200 Plugins erweitern den Core! CCCC NCover Core Checkstyle NUnit Clover Plot Cobertura PMD Plugin CppUnit PureCoverage Crap4J Ruby metrics Doxygen Selenium AES DRY Seleniumhq Emma Serenitec FindBugs SLOCCount Gallio Task Scanner Gnat Testability Grinder Explorer Berichte Japex Violations Javadoc Warnings Build- Source Code JavaNCSS+ WebTest Mechanismen Management JavaTest Rprt. Presenter JUnit MSTest
  28. 28. Über 200 Plugins erweitern den Core! Campfire Core Email Google Calendar hudsonTracker IRC Jabber Nabaztag SameTime Status Monitor RSS TuxDroid Twitter Benachrichtigungen Berichte Build- Source Code Mechanismen Management
  29. 29. Über 200 Plugins erweitern den Core! FTP Publisher Core java.net Uploader SCP SFEE SVN Verteilung von Artefakten Benachrichtigungen Berichte Build- Source Code Mechanismen Management
  30. 30. Über 200 Plugins erweitern den Core! Active Directory Mantis Core Android App PXE Audit Trail Polarion Backlog Redmine Bugzilla RegEx Email Cluster mgmt. SFEE Crowd Selenium Firefox Add-on Sonar Github Swarm Integration mit Google Calend. Trac Drittsystemen Verteilung von Google Code Windows Tray Artefakten Google Desktop HGCA Benachrichtigungen Berichte Hadoop iPhone App Build- Source Code JIRA Mechanismen Management Java.net Kagemai LDAP Email
  31. 31. Über 200 Plugins erweitern den Core! Hudson Central. Job(Re)Action Core Hudson Distr. Workspace Clean Locks and Latches M2 Extra Steps M2 Release Release Template Project „Build Wrapper“ VMware Xvnc Integration mit ZenTimestamp Drittsystemen Verteilung von Artefakten Benachrichtigungen Berichte Build- Source Code Mechanismen Management
  32. 32. Über 200 Plugins erweitern den Core! Build-timeout Core Change Log History Claim Configuration Slicing Nützliches Cygpath & Schräges Emotional Hudson Google Analytics „Build Wrapper“ Green Balls JBPM Integration mit Locale Drittsystemen Verteilung von Port Allocator Artefakten Promoted Builds Radiator View Benachrichtigungen Berichte Retry Failed Builds Sectioned View Build- Source Code Sidebar-Link Mechanismen Management Slave-status Continuous Integration Game
  33. 33. Plugin „Continuous Integration Game“
  34. 34. Agenda 10 Schritte Überblick
  35. 35. HERUNTERLADEN
  36. 36. EINSETZEN
  37. 37. WEITERSAGEN
  38. 38. MITMACHEN
  39. 39. hudson-ci.org Beratung Buch Vortrag Dr. Wiest – Ingenieurbüro für Softwaretechnik Wiesfleckenstrasse 13 72810 Gomaringen www.simonwiest.de
  40. 40. Empfohlene Nachlese Hudson Projektseite. hudson.dev.java.net JBoss Hudson CI Server. hudson.jboss.org/hudson Interview mit Hudson-Initiator Kohsuke Kawaguchi blogs.sun.com/glassfishpodcast (Episode #007) Continuous Integration White Paper von Martin Fowler. www.martinfowler.com CI Feature Matrix. confluence.public.thoughtworks.org P.M. Duvall: Continuous Integration. 2007. Projektautomatisierung (allgemein) J. F. Smart: Java Power Tools. 2008. M. Hüttermann: Agile Java-Entwicklung in der Praxis. 2007.
  41. 41. Wie funktionieren die Bären? Mehr dazu im Hudson Wiki wiki.hudson-ci.org//x/AQA1AQ Hudson Bären HTTP/XML CGI Netz Monitor-Skript 230 V Steckdosenleiste
  42. 42. Wie funktionieren die Bären? Ingenieurbüro Dr. Wiest, Gomaringen Netzgiganten GmbH, last.fm, Stuttgart London/UK
  43. 43. Bonus-Folie: Hardware aufrüsten lohnt. CPU Hauptspeicher Festplatte Netzwerk Quelle: „Schneide Blog“ der Softwareschneiderei GmbH, http://schneide.wordpress.com
  44. 44. 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
  45. 45. www.rockstardemos.de

×