SlideShare ist ein Scribd-Unternehmen logo
1 von 53
Downloaden Sie, um offline zu lesen
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
Gestatten, Hudson.
Agenda




             10 Schritte



         Überblick
Ü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
Was ist kontinuierliche Integration (CI)?
Was ist kontinuierliche Integration (CI)?
                                            orchestriert durch CI-System
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
                   …             …                     …
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




             10 Schritte



         Überblick
1. Installation: Denkbar einfach.


                                    Download als
                                     WAR-Datei
                                     Ca. 26 MB




   WebSphere        Tomcat          Jetty            Winstone
                                                   (Eingebettet)
2. Konfiguration: Komfortabel und übersichtlich.




           Web-Interface                    XML-Konfigurationsdateien

Wann immer möglich, werden Konventionen oder sinnvolle Vorgabewerte
verwendet.
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!
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
          Hudson                        Browser




                        Repository
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.


                                                                  HTML,
                   HTML                                         XML, JSON


                                                                HTML, CLI
                                         Hudson




                                                           Status anzeigen   Jobs importieren


Photos (von links): Simon Wiest, Daniel Lindner, violet.net, Hartmut Lang
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
9. Matrix-Builds: Hudson übernimmt die Fleißarbeit.
                      Achse „Betriebssystem“
                    Windows            Linux




          JDK 1.5

  Achse
  „JDK“


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


                                              Cloud




                                   Master




                               Mac OS X     Linux     Windows
                                                      virtualisiert
       lokale Builds                  verteilte Builds
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
Haben wir da nicht etwas vergessen?




                    Bisher hauptsächlich
                    core-Features gezeigt!
Ü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
Ü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
Ü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)
Ü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
Ü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
Ü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
Ü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
Ü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
Ü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
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
Wiesfleckenstrasse 13
72810 Gomaringen
www.simonwiest.de
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.
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
Wie funktionieren die Bären?




                     Ingenieurbüro Dr. Wiest,
                           Gomaringen

                                                Netzgiganten GmbH,
 last.fm,                                                  Stuttgart
 London/UK
Bonus-Folie: Hardware aufrüsten lohnt.




                       CPU                                  Hauptspeicher




                   Festplatte                                   Netzwerk



Quelle: „Schneide Blog“ der Softwareschneiderei GmbH, http://schneide.wordpress.com
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

Weitere ähnliche Inhalte

Was ist angesagt?

Introduction to JEE
Introduction to JEEIntroduction to JEE
Introduction to JEE
guestc44b7b
 
Server Revolutions- Der Spring Source DM Server
Server Revolutions- Der Spring Source DM ServerServer Revolutions- Der Spring Source DM Server
Server Revolutions- Der Spring Source DM Server
Sandro Sonntag
 

Was ist angesagt? (20)

Introduction to JEE
Introduction to JEEIntroduction to JEE
Introduction to JEE
 
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
 
Requirements Engineering in agilen Projekten - Flexibilität ist gefordert
Requirements Engineering in agilen Projekten - Flexibilität ist gefordertRequirements Engineering in agilen Projekten - Flexibilität ist gefordert
Requirements Engineering in agilen Projekten - Flexibilität ist gefordert
 
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
 
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...
 
Jenkins Acceleration
Jenkins AccelerationJenkins Acceleration
Jenkins Acceleration
 
Citrix Fit4Cloud Reihe: Citrix XenServer in der Cloud
Citrix Fit4Cloud Reihe: Citrix XenServer in der CloudCitrix Fit4Cloud Reihe: Citrix XenServer in der Cloud
Citrix Fit4Cloud Reihe: Citrix XenServer in der Cloud
 
Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen
 
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-Apps
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-AppsAber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-Apps
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-Apps
 
Neue Features der Java EE 6
Neue Features der Java EE 6Neue Features der Java EE 6
Neue Features der Java EE 6
 
May the forge be with you
May the forge be with youMay the forge be with you
May the forge be with you
 
Server Revolutions- Der Spring Source DM Server
Server Revolutions- Der Spring Source DM ServerServer Revolutions- Der Spring Source DM Server
Server Revolutions- Der Spring Source DM Server
 
Vagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenVagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und Architekten
 
JM 04/09 - OSGi in kleinen Dosen 5
JM 04/09 - OSGi in kleinen Dosen 5JM 04/09 - OSGi in kleinen Dosen 5
JM 04/09 - OSGi in kleinen Dosen 5
 
Hendrik Jungnitsch: Software verpacken mit Docker
Hendrik Jungnitsch: Software verpacken mit DockerHendrik Jungnitsch: Software verpacken mit Docker
Hendrik Jungnitsch: Software verpacken mit Docker
 
Build Patterns - Patterns und Best Practices für den Build Prozess
Build Patterns - Patterns und Best Practices für den Build ProzessBuild Patterns - Patterns und Best Practices für den Build Prozess
Build Patterns - Patterns und Best Practices für den Build Prozess
 
MongoDB: Security-Tipps gegen Hacker
MongoDB: Security-Tipps gegen HackerMongoDB: Security-Tipps gegen Hacker
MongoDB: Security-Tipps gegen Hacker
 
JBoss AS 7 als Plattform moderner Enterprise-Anwendungen
JBoss AS 7 als Plattform moderner Enterprise-AnwendungenJBoss AS 7 als Plattform moderner Enterprise-Anwendungen
JBoss AS 7 als Plattform moderner Enterprise-Anwendungen
 
Docker for Windows / Windows Container
Docker for Windows / Windows ContainerDocker for Windows / Windows Container
Docker for Windows / Windows Container
 

Andere mochten auch

Web2.0 Grundlagen
Web2.0 GrundlagenWeb2.0 Grundlagen
Web2.0 Grundlagen
Saskia B.
 
Descontento docente
Descontento docenteDescontento docente
Descontento docente
Licentiare
 
Europeana: Status - Datenlieferungen - Metadaten
Europeana: Status - Datenlieferungen - MetadatenEuropeana: Status - Datenlieferungen - Metadaten
Europeana: Status - Datenlieferungen - Metadaten
Max Kaiser
 
Gustavo collado - La inspección técnica de edificios en el municipio de Madrid
Gustavo collado - La inspección técnica de edificios en el municipio de MadridGustavo collado - La inspección técnica de edificios en el municipio de Madrid
Gustavo collado - La inspección técnica de edificios en el municipio de Madrid
ponencias2011
 
La construcción de redes locales de protección,
La construcción de redes locales de protección,La construcción de redes locales de protección,
La construcción de redes locales de protección,
unidyair
 
BañOs Del Mundo
BañOs Del MundoBañOs Del Mundo
BañOs Del Mundo
gvirico
 
Procuraduría 11 1
Procuraduría 11 1Procuraduría 11 1
Procuraduría 11 1
09anderson
 
Der Chat Im Unterricht
Der Chat Im UnterrichtDer Chat Im Unterricht
Der Chat Im Unterricht
Daniel Bernsen
 

Andere mochten auch (20)

servicehit.com_Infos zur Portrait-Erstellung
servicehit.com_Infos zur Portrait-Erstellungservicehit.com_Infos zur Portrait-Erstellung
servicehit.com_Infos zur Portrait-Erstellung
 
Farmacologia repaso
Farmacologia repasoFarmacologia repaso
Farmacologia repaso
 
Web2.0 Grundlagen
Web2.0 GrundlagenWeb2.0 Grundlagen
Web2.0 Grundlagen
 
Proyecto para e
Proyecto para eProyecto para e
Proyecto para e
 
Buena ondi
Buena ondiBuena ondi
Buena ondi
 
Topsy: 7 utilidades básicas para exprimir Twitter
Topsy: 7 utilidades básicas para exprimir TwitterTopsy: 7 utilidades básicas para exprimir Twitter
Topsy: 7 utilidades básicas para exprimir Twitter
 
Descontento docente
Descontento docenteDescontento docente
Descontento docente
 
Europeana: Status - Datenlieferungen - Metadaten
Europeana: Status - Datenlieferungen - MetadatenEuropeana: Status - Datenlieferungen - Metadaten
Europeana: Status - Datenlieferungen - Metadaten
 
Gustavo collado - La inspección técnica de edificios en el municipio de Madrid
Gustavo collado - La inspección técnica de edificios en el municipio de MadridGustavo collado - La inspección técnica de edificios en el municipio de Madrid
Gustavo collado - La inspección técnica de edificios en el municipio de Madrid
 
Navidad!!!
Navidad!!!Navidad!!!
Navidad!!!
 
La construcción de redes locales de protección,
La construcción de redes locales de protección,La construcción de redes locales de protección,
La construcción de redes locales de protección,
 
Pieza chaparral
Pieza chaparralPieza chaparral
Pieza chaparral
 
Taller teoria y praxis de la redacción
Taller teoria y praxis de la redacciónTaller teoria y praxis de la redacción
Taller teoria y praxis de la redacción
 
Unsereuni #bchh09
Unsereuni #bchh09Unsereuni #bchh09
Unsereuni #bchh09
 
BañOs Del Mundo
BañOs Del MundoBañOs Del Mundo
BañOs Del Mundo
 
Procuraduría 11 1
Procuraduría 11 1Procuraduría 11 1
Procuraduría 11 1
 
Watatsumi Barcelona Menu
Watatsumi Barcelona MenuWatatsumi Barcelona Menu
Watatsumi Barcelona Menu
 
Manual clic
Manual clicManual clic
Manual clic
 
PONENCIA TRABAJO DE INVESTIGACION
PONENCIA TRABAJO DE INVESTIGACION PONENCIA TRABAJO DE INVESTIGACION
PONENCIA TRABAJO DE INVESTIGACION
 
Der Chat Im Unterricht
Der Chat Im UnterrichtDer Chat Im Unterricht
Der Chat Im Unterricht
 

Ähnlich wie Continuous Integration mit Hudson (JUG Mannheim, 27.01.2010)

SQL Server auf Infrastructure-as-a-Services (IaaS) in der Cloud betreiben
SQL Server auf Infrastructure-as-a-Services (IaaS) in der Cloud betreibenSQL Server auf Infrastructure-as-a-Services (IaaS) in der Cloud betreiben
SQL Server auf Infrastructure-as-a-Services (IaaS) in der Cloud betreiben
Jan Hentschel
 
Aras PLM Installation
Aras PLM InstallationAras PLM Installation
Aras PLM Installation
Aras
 
iOS Apps mit Webtechnologien erstellen
iOS Apps mit Webtechnologien erstelleniOS Apps mit Webtechnologien erstellen
iOS Apps mit Webtechnologien erstellen
Michael Kühnel
 

Ähnlich wie Continuous Integration mit Hudson (JUG Mannheim, 27.01.2010) (20)

CI mit Hudson/Jenkins
CI mit Hudson/JenkinsCI mit Hudson/Jenkins
CI mit Hudson/Jenkins
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
 
Jalimo Slides Linuxtag2007
Jalimo Slides Linuxtag2007Jalimo Slides Linuxtag2007
Jalimo Slides Linuxtag2007
 
JAX 2015 - Continuous Integration mit Java & Javascript
JAX 2015 - Continuous Integration mit Java & JavascriptJAX 2015 - Continuous Integration mit Java & Javascript
JAX 2015 - Continuous Integration mit Java & Javascript
 
Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.
 
Ec2009 Templates
Ec2009 TemplatesEc2009 Templates
Ec2009 Templates
 
Testautomatisierung mit CodedUI für Fortgeschrittende
Testautomatisierung mit CodedUI für FortgeschrittendeTestautomatisierung mit CodedUI für Fortgeschrittende
Testautomatisierung mit CodedUI für Fortgeschrittende
 
.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht
.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht
.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
SQL Server auf Infrastructure-as-a-Services (IaaS) in der Cloud betreiben
SQL Server auf Infrastructure-as-a-Services (IaaS) in der Cloud betreibenSQL Server auf Infrastructure-as-a-Services (IaaS) in der Cloud betreiben
SQL Server auf Infrastructure-as-a-Services (IaaS) in der Cloud betreiben
 
Deployment 2.0
Deployment 2.0Deployment 2.0
Deployment 2.0
 
MEAN SCS in der Cloud
MEAN SCS in der CloudMEAN SCS in der Cloud
MEAN SCS in der Cloud
 
GWT
GWTGWT
GWT
 
Aras PLM Installation
Aras PLM InstallationAras PLM Installation
Aras PLM Installation
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
 
iOS Apps mit Webtechnologien erstellen
iOS Apps mit Webtechnologien erstelleniOS Apps mit Webtechnologien erstellen
iOS Apps mit Webtechnologien erstellen
 
Whitecoast lcty12 x_pages
Whitecoast lcty12 x_pagesWhitecoast lcty12 x_pages
Whitecoast lcty12 x_pages
 
Referat: Architektur und Entwicklung mobiler Anwendungen
Referat: Architektur und Entwicklung mobiler AnwendungenReferat: Architektur und Entwicklung mobiler Anwendungen
Referat: Architektur und Entwicklung mobiler Anwendungen
 
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
 
Architektur und Automation als Enabler für DevOps
Architektur und Automation als Enabler für DevOpsArchitektur und Automation als Enabler für DevOps
Architektur und Automation als Enabler für DevOps
 

Continuous Integration mit Hudson (JUG Mannheim, 27.01.2010)

  • 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.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 10. Agenda 10 Schritte Überblick
  • 11. Ü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
  • 12. Was ist kontinuierliche Integration (CI)?
  • 13. Was ist kontinuierliche Integration (CI)? orchestriert durch CI-System
  • 14. 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 … … …
  • 15. 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
  • 16. Wer verwendet Hudson (und darf es zugeben)? Quelle: Kohsuke Kawaguchi, wiki.hudson-ci.org//x/EYQ5Ag
  • 17. Hudson: Ein Projekt in voller Fahrt.
  • 18. Agenda 10 Schritte Überblick
  • 19. 1. Installation: Denkbar einfach. Download als WAR-Datei Ca. 26 MB WebSphere Tomcat Jetty Winstone (Eingebettet)
  • 20. 2. Konfiguration: Komfortabel und übersichtlich. Web-Interface XML-Konfigurationsdateien Wann immer möglich, werden Konventionen oder sinnvolle Vorgabewerte verwendet.
  • 21. 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!
  • 22. 4. Berichten: Grenzenlos durch Plugins. Eingebaut JUnit TestNG Über Plug-Ins CheckStyle PMD FindBugs Simian u.v.m.
  • 23. 5. Source Code Repositories: Mehr als nur „Auschecken“. Repository Hudson Browser Repository
  • 24. 6. Benachrichtigungen: Viele Kanäle stehen offen. E-Mail RSS-Feeds Instant Messenger Twitter Plugins für IDEs & Browser Desktop-Gadgets
  • 25. 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
  • 26. 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
  • 27. 9. Matrix-Builds: Hudson übernimmt die Fleißarbeit. Achse „Betriebssystem“ Windows Linux JDK 1.5 Achse „JDK“ JDK 1.6
  • 28. 10.Verteilte Builds: Skalierbare Leistung mit OS-Vielfalt. Cloud Master Mac OS X Linux Windows virtualisiert lokale Builds verteilte Builds
  • 29. 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
  • 30. Haben wir da nicht etwas vergessen? Bisher hauptsächlich core-Features gezeigt!
  • 31. Ü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
  • 32. Ü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
  • 33. Ü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)
  • 34. Ü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
  • 35. Ü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
  • 36. Ü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
  • 37. Ü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
  • 38. Ü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
  • 39. Ü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
  • 41. Agenda 10 Schritte Überblick
  • 46. hudson-ci.org Beratung Buch Vortrag Dr. Wiest – Ingenieurbüro für Softwaretechnik Wiesfleckenstrasse 13 72810 Gomaringen www.simonwiest.de
  • 47.
  • 48. 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.
  • 49. 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
  • 50. Wie funktionieren die Bären? Ingenieurbüro Dr. Wiest, Gomaringen Netzgiganten GmbH, last.fm, Stuttgart London/UK
  • 51. Bonus-Folie: Hardware aufrüsten lohnt. CPU Hauptspeicher Festplatte Netzwerk Quelle: „Schneide Blog“ der Softwareschneiderei GmbH, http://schneide.wordpress.com
  • 52. 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