SlideShare ist ein Scribd-Unternehmen logo
1 von 26
Downloaden Sie, um offline zu lesen
Continuous Integration mit Hudson
                   https://hudson.dev.java.net/
               »




                                      Dr. Christian Betz
                   https://www.xing.com/profle/Christian_Betz
                                     http://twitter.com/vizMind
Über mich
             Studium und Promotion in
        Informatik an der Uni Würzburg

                 In Hamburg seit 2005

Geschäftsführer knowIT-Software GmbH
 Software-Architekt bei der Plath GmbH




                                         2
Continous Integration
integriert nicht nur
Software-Komponenten




                        3
Architektur   4
Coding   5
Qualitätssicherung   6
Projektmanagement   7
Hudson
„An extensible continuous integration
engine“




                                        8
Hudson einrichten   9
Starten
    Per WebStart
»

    java -jar hudson.war
»

    WAR in WebContainer
»
    deployen


    Webbrowser öfnen
    (per default
    http://localhost:8080/)




                              10
Konfgurieren
    Browser-basiert:
»

        System-Konfguration (eMail-Server, Pfade, Environment-Variablen)
    »

        Plugins
    »

        Nodes
    »

        Monitoring
    »

        Skript-Konsole
    »

    XML-basiert
»

        Während Hudson läuft
    »




                                                                           11
„Free Style Software-Projekt“
    Erlaubt die Kombination von „jedem“ Versions-Kontrollsystem
»
    (VCS) mit „jedem“ Buildverfahren
        SVN, CVS out-of-the-box
    »

        Maven, ANT, Shell, Batch out-of-the-box, auch beliebige Kombinationen
    »

    Build-Auslöser
»

        Abhängig von Projekten
    »

        Zeitgesteuert
    »

        Abhängig vom VCS
    »

        Trigger über http-requests
    »




                                                                            12
Build-Ergebnisse
    Je nach Projekt baut man unterschiedliche Artefakte
»

        JARs, WARs
    »

        Installer
    »

        Source-Bundles
    »

    Builds können folgendes Ergebnis haben
»

        Stable
    »

        Instable (Build läuft durch, aber z.B. Coverage ist unter Schwellwert)
    »

        Failed
    »

    Hudson kann Artefakte selbst archivieren oder fngerprinten
»




                                                                                 13
Hudson im Einsatz bei Plath   14
Ein Beispiel-Projekt
    Server-Applikation als WAR
»

        Deployment in einen JBoss-Cluster
    »

    Eclipse RCP Rich Client
»

        zu starten per WebStart, verpackt in WAR
    »

        Deployment in den JBoss-Cluster
    »

    Eclipse Online-Hilfe
»

        WAR mit OSGi-Bundles der Eclipse Hilfe
    »

        Deployment in den Jboss-Cluster
    »

    Client + Integrationstest
»

        Ausführen auf Windows-Maschine
    »


                                                   15
Continous Build
    Baut nach jedem Check-in
»

    Projekte werden über Maven gebaut (Multi-Module Projects)
»

    Eclipse Client wird über Eclipse PDE Build (ANT) integriert
»

    Build-Ergebnis
»

        Compilierter Code, wird außerhalb von Hudson nicht weiterverwendet
    »

        Unit-Tests (JUnit)
    »

        Reporting von ToDo, Code Coverage, Checkstyle, FindBugs, PMD
    »

        Email bei Veränderung des Build-Ergebnisses
    »




                                                                             16
Nightly Build
    Baut jede Nacht
»

    Projekte werden über Maven gebaut, anderes Profl
»

    Eclipse Client wird diesmal signiert und in WebStart-Archiv
»
    „verpackt“
    Services, Client-WebStart und Online-Hilfe werden in ein ZIP-
»
    File gepackt
    Build-Ergebnis
»

        Deploybares Artefakt, wird in ein Nexus-Repository „deployt“
    »

        Cleanup der Datenbank (wird neu mit Testdaten gefüllt)
    »

        Deployment per Gant (aus Nexus-Repository) auf
    »
        JBoss-Cluster, wenn Build vorher erfolgreich
                                                                       17
Integration Test
    Baut im Anschluss an erfolgreichen Nightly Build
»

    Ist gebunden auf einen Windows-Slave
»

    Führt einen Rich Client + Integrationstest-Bundle aus
»

    Reporting über Junit
»

    Zusammenfassen der Testergebnisse von Nightly-Build und
»
    Integration Test




                                                              18
Hudson erweitern   19
Plugins
    Hudson hat einen eigenen
»
    Plugin-Mechanismus eingebaut
    (inkl. Updates)
    VCS
»

        ClearCase, GIT, Mercurial, Perforce
    »

    Build
»

        Gant, Gradle, Grails,
    »
        NAnt (.NET), Phing (PHP),
        rake (Ruby)




                                              20
Interessante Plugins
    ActiveDirectory             Continous Integration Game
»                           »

    LDAP Email Plugin           Messaging
»                           »

    IssueTracking-Plugins           IRC
                                »
»
                                    Jabber
                                »
        Bugzilla
    »
                                    Email
                                »
        JIRA
    »
                                    Twitter
                                »
        Trac
    »

                                Deployment
                            »
    Metriken
»
                                    SCP
                                »
        Checkstyle
    »
                                    FTP
                                »
        Findbugs
    »
                                    Deploy (via Cargo)
                                »
    Promoted Build Plugin
»

                                                             21
Ofene Issues
    Erlaubt Commit von fehlerhaftem Code (anders als z.B.
»
    Teamcity)
    Synchronisation der Build-Prozesse in der IDE und auf dem
»
    Build-Server
    Vordefnierte Projekttypen noch nicht ausgereift
»

    Fehlende Plugins für Spezialfälle
»

        bazaar
    »




                                                                22
Continuous Integration als
Schlüssel zum Projekterfolg?   23
Für Hudson spricht einiges...
    Open Source                         Auch zum Monitoring
»                                   »
                                        externer Jobs geeignet (z.B.
    Einfach aufzusetzen
»
                                        Cleanup der Testumgebung)
    Leicht zu erweitern (Plugins)
»
                                        File fngerprinting
                                    »
    Einfach zu bedienen
»
                                        Trend reports
                                    »
    Sehr stabil
»

    Verteiltes Bauen möglich
»

    Permanente URLs (z.B. auf
»
    latest-build)



                                                                   24
… und noch mehr für
Continuous Integration
    Kürzere Release-Zyklen
»

    Fehler werden schneller entdeckt
»

    Metriken können zentral gemessen werden
»

    Automatische Changelogs
»

    Transparenz für alle
»




                                              25
26

Weitere ähnliche Inhalte

Was ist angesagt?

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 ProzessRalf Abramowitsch
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsQAware GmbH
 
Web Performance Optimierung (WPO)
Web Performance Optimierung (WPO)Web Performance Optimierung (WPO)
Web Performance Optimierung (WPO)Martin Kliehm
 
Gameduell Glassfish Migration
Gameduell Glassfish MigrationGameduell Glassfish Migration
Gameduell Glassfish Migrationdehms
 
Deployment pipeline mit maven, chef und jenkins
Deployment pipeline mit maven, chef und jenkinsDeployment pipeline mit maven, chef und jenkins
Deployment pipeline mit maven, chef und jenkinsBild GmbH & Co. KG
 
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 B1 Systems GmbH
 
Vagrant - Einführung & Verwendung
Vagrant - Einführung & VerwendungVagrant - Einführung & Verwendung
Vagrant - Einführung & VerwendungTilo Baller
 
Title is loading ... Cache is cold.
Title is loading ... Cache is cold.Title is loading ... Cache is cold.
Title is loading ... Cache is cold.QAware GmbH
 
Maven2 - Die nächste Generation des Buildmanagements?
Maven2 - Die nächste Generation des Buildmanagements?Maven2 - Die nächste Generation des Buildmanagements?
Maven2 - Die nächste Generation des Buildmanagements?Thorsten Kamann
 
WebLogic Server auf ODA: Erfahrungen aus einem Kundenprojekt
WebLogic Server auf ODA: Erfahrungen aus einem KundenprojektWebLogic Server auf ODA: Erfahrungen aus einem Kundenprojekt
WebLogic Server auf ODA: Erfahrungen aus einem KundenprojektOPITZ CONSULTING Deutschland
 
Tipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit DockerTipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit DockerNicholas Dille
 
JavaScript Days 2015: Security
JavaScript Days 2015: SecurityJavaScript Days 2015: Security
JavaScript Days 2015: SecurityMayflower GmbH
 
Punkt.de – Layout-Testing: was geht, was bringt´s, wer braucht´s?
Punkt.de – Layout-Testing: was geht, was bringt´s, wer braucht´s?Punkt.de – Layout-Testing: was geht, was bringt´s, wer braucht´s?
Punkt.de – Layout-Testing: was geht, was bringt´s, wer braucht´s?punkt.de GmbH
 

Was ist angesagt? (20)

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
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
 
WebLogic im Docker Container
WebLogic im Docker ContainerWebLogic im Docker Container
WebLogic im Docker Container
 
Jenkins Acceleration
Jenkins AccelerationJenkins Acceleration
Jenkins Acceleration
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
Web Performance Optimierung (WPO)
Web Performance Optimierung (WPO)Web Performance Optimierung (WPO)
Web Performance Optimierung (WPO)
 
Gameduell Glassfish Migration
Gameduell Glassfish MigrationGameduell Glassfish Migration
Gameduell Glassfish Migration
 
Oracle WebLogic for DevOps
Oracle WebLogic for DevOpsOracle WebLogic for DevOps
Oracle WebLogic for DevOps
 
Deployment pipeline mit maven, chef und jenkins
Deployment pipeline mit maven, chef und jenkinsDeployment pipeline mit maven, chef und jenkins
Deployment pipeline mit maven, chef und jenkins
 
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
 
Vagrant
VagrantVagrant
Vagrant
 
Vagrant - Einführung & Verwendung
Vagrant - Einführung & VerwendungVagrant - Einführung & Verwendung
Vagrant - Einführung & Verwendung
 
Title is loading ... Cache is cold.
Title is loading ... Cache is cold.Title is loading ... Cache is cold.
Title is loading ... Cache is cold.
 
Maven2 - Die nächste Generation des Buildmanagements?
Maven2 - Die nächste Generation des Buildmanagements?Maven2 - Die nächste Generation des Buildmanagements?
Maven2 - Die nächste Generation des Buildmanagements?
 
systemd & Docker
systemd & Dockersystemd & Docker
systemd & Docker
 
WebLogic Server auf ODA: Erfahrungen aus einem Kundenprojekt
WebLogic Server auf ODA: Erfahrungen aus einem KundenprojektWebLogic Server auf ODA: Erfahrungen aus einem Kundenprojekt
WebLogic Server auf ODA: Erfahrungen aus einem Kundenprojekt
 
Tipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit DockerTipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit Docker
 
Ant Maven
Ant MavenAnt Maven
Ant Maven
 
JavaScript Days 2015: Security
JavaScript Days 2015: SecurityJavaScript Days 2015: Security
JavaScript Days 2015: Security
 
Punkt.de – Layout-Testing: was geht, was bringt´s, wer braucht´s?
Punkt.de – Layout-Testing: was geht, was bringt´s, wer braucht´s?Punkt.de – Layout-Testing: was geht, was bringt´s, wer braucht´s?
Punkt.de – Layout-Testing: was geht, was bringt´s, wer braucht´s?
 

Andere mochten auch

Continuous Integration mit Jenkins
Continuous Integration mit JenkinsContinuous Integration mit Jenkins
Continuous Integration mit JenkinsStephan Schmidt
 
Code Reviews - Best Practices
Code Reviews - Best PracticesCode Reviews - Best Practices
Code Reviews - Best PracticesRobin Sedlaczek
 
Code Review Checklist
Code Review ChecklistCode Review Checklist
Code Review ChecklistIntersog
 
Das Kung Fu des Code Reviews
Das Kung Fu des Code ReviewsDas Kung Fu des Code Reviews
Das Kung Fu des Code ReviewsChristian Erhardt
 
"Effektive Code Reviews" - Abendvortrag bei oose.de
"Effektive Code Reviews" - Abendvortrag bei oose.de"Effektive Code Reviews" - Abendvortrag bei oose.de
"Effektive Code Reviews" - Abendvortrag bei oose.deFrank Sons
 
Creasoft - Software QS Review
Creasoft - Software QS ReviewCreasoft - Software QS Review
Creasoft - Software QS ReviewCreasoft AG
 
Effizente Entwicklung für verteilte Projekte
Effizente Entwicklung für verteilte ProjekteEffizente Entwicklung für verteilte Projekte
Effizente Entwicklung für verteilte ProjekteThorsten Kamann
 
Git & Gerrit: Verteilte Softwareentwicklung und -reviews in der TYPO3-Community
Git & Gerrit: Verteilte Softwareentwicklung und -reviews in der TYPO3-CommunityGit & Gerrit: Verteilte Softwareentwicklung und -reviews in der TYPO3-Community
Git & Gerrit: Verteilte Softwareentwicklung und -reviews in der TYPO3-CommunitySteffen Gebert
 
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)Wiest Simon
 

Andere mochten auch (9)

Continuous Integration mit Jenkins
Continuous Integration mit JenkinsContinuous Integration mit Jenkins
Continuous Integration mit Jenkins
 
Code Reviews - Best Practices
Code Reviews - Best PracticesCode Reviews - Best Practices
Code Reviews - Best Practices
 
Code Review Checklist
Code Review ChecklistCode Review Checklist
Code Review Checklist
 
Das Kung Fu des Code Reviews
Das Kung Fu des Code ReviewsDas Kung Fu des Code Reviews
Das Kung Fu des Code Reviews
 
"Effektive Code Reviews" - Abendvortrag bei oose.de
"Effektive Code Reviews" - Abendvortrag bei oose.de"Effektive Code Reviews" - Abendvortrag bei oose.de
"Effektive Code Reviews" - Abendvortrag bei oose.de
 
Creasoft - Software QS Review
Creasoft - Software QS ReviewCreasoft - Software QS Review
Creasoft - Software QS Review
 
Effizente Entwicklung für verteilte Projekte
Effizente Entwicklung für verteilte ProjekteEffizente Entwicklung für verteilte Projekte
Effizente Entwicklung für verteilte Projekte
 
Git & Gerrit: Verteilte Softwareentwicklung und -reviews in der TYPO3-Community
Git & Gerrit: Verteilte Softwareentwicklung und -reviews in der TYPO3-CommunityGit & Gerrit: Verteilte Softwareentwicklung und -reviews in der TYPO3-Community
Git & Gerrit: Verteilte Softwareentwicklung und -reviews in der TYPO3-Community
 
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
 

Ähnlich wie Continuous Integration mit Hudson

Softwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration ToolsSoftwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration ToolsGFU Cyrus AG
 
Der Status Quo des Chaos Engineerings
Der Status Quo des Chaos EngineeringsDer Status Quo des Chaos Engineerings
Der Status Quo des Chaos EngineeringsQAware GmbH
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringQAware GmbH
 
BED-Con - Tools für den täglichen Kampf als Entwickler
BED-Con - Tools für den täglichen Kampf als EntwicklerBED-Con - Tools für den täglichen Kampf als Entwickler
BED-Con - Tools für den täglichen Kampf als EntwicklerPatrick Baumgartner
 
Von Maven zu Gradle in 45 Minuten
Von Maven zu Gradle in 45 MinutenVon Maven zu Gradle in 45 Minuten
Von Maven zu Gradle in 45 MinutenQAware GmbH
 
DevOps der Triple-E Klasse - Eclipse DemoCamp
DevOps der Triple-E Klasse - Eclipse DemoCampDevOps der Triple-E Klasse - Eclipse DemoCamp
DevOps der Triple-E Klasse - Eclipse DemoCampWerner Keil
 
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)Wiest Simon
 
JFS 2011 - Top 10 der Tools & Methoden - Baumgartner, Oehmichen
JFS 2011 - Top 10 der Tools & Methoden - Baumgartner, OehmichenJFS 2011 - Top 10 der Tools & Methoden - Baumgartner, Oehmichen
JFS 2011 - Top 10 der Tools & Methoden - Baumgartner, OehmichenOdilo Oehmichen
 
JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen
JFS 2011 - Top 10 Tools & Methoden - Baumgartner, OehmichenJFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen
JFS 2011 - Top 10 Tools & Methoden - Baumgartner, OehmichenPatrick Baumgartner
 
Oracle WebLogic for DevOps
Oracle WebLogic for DevOpsOracle WebLogic for DevOps
Oracle WebLogic for DevOpsAndreas Koop
 
Integration von Security-Checks in die CI-Pipeline
Integration von Security-Checks in die CI-PipelineIntegration von Security-Checks in die CI-Pipeline
Integration von Security-Checks in die CI-PipelineOPEN KNOWLEDGE GmbH
 
Deployment mit Ansible auf JBoss Servern
Deployment mit Ansible auf JBoss ServernDeployment mit Ansible auf JBoss Servern
Deployment mit Ansible auf JBoss ServernHarald Schmaldienst
 
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018Christian Mücke
 
Building Enterprise Applications with AngularJS (GDG DevFest Karlsruhe 2014)
Building Enterprise Applications with AngularJS (GDG DevFest Karlsruhe 2014)Building Enterprise Applications with AngularJS (GDG DevFest Karlsruhe 2014)
Building Enterprise Applications with AngularJS (GDG DevFest Karlsruhe 2014)Christian Janz
 
Collaboration Days 2011 - Damit die Tester schneller ran können.
Collaboration Days 2011 - Damit die Tester schneller ran können.Collaboration Days 2011 - Damit die Tester schneller ran können.
Collaboration Days 2011 - Damit die Tester schneller ran können.David Schneider
 
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 InfrastrukturQAware GmbH
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringQAware GmbH
 
A Hitchhiker's Guide to the Cloud Native Stack
A Hitchhiker's Guide to the Cloud Native StackA Hitchhiker's Guide to the Cloud Native Stack
A Hitchhiker's Guide to the Cloud Native StackQAware GmbH
 
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConf
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConfA Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConf
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConfMario-Leander Reimer
 
Entwicklung mit Chef und Vagrant - PHPUG HH
Entwicklung mit Chef und Vagrant - PHPUG HHEntwicklung mit Chef und Vagrant - PHPUG HH
Entwicklung mit Chef und Vagrant - PHPUG HHFlorian Holzhauer
 

Ähnlich wie Continuous Integration mit Hudson (20)

Softwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration ToolsSoftwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration Tools
 
Der Status Quo des Chaos Engineerings
Der Status Quo des Chaos EngineeringsDer Status Quo des Chaos Engineerings
Der Status Quo des Chaos Engineerings
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform Engineering
 
BED-Con - Tools für den täglichen Kampf als Entwickler
BED-Con - Tools für den täglichen Kampf als EntwicklerBED-Con - Tools für den täglichen Kampf als Entwickler
BED-Con - Tools für den täglichen Kampf als Entwickler
 
Von Maven zu Gradle in 45 Minuten
Von Maven zu Gradle in 45 MinutenVon Maven zu Gradle in 45 Minuten
Von Maven zu Gradle in 45 Minuten
 
DevOps der Triple-E Klasse - Eclipse DemoCamp
DevOps der Triple-E Klasse - Eclipse DemoCampDevOps der Triple-E Klasse - Eclipse DemoCamp
DevOps der Triple-E Klasse - Eclipse DemoCamp
 
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)
 
JFS 2011 - Top 10 der Tools & Methoden - Baumgartner, Oehmichen
JFS 2011 - Top 10 der Tools & Methoden - Baumgartner, OehmichenJFS 2011 - Top 10 der Tools & Methoden - Baumgartner, Oehmichen
JFS 2011 - Top 10 der Tools & Methoden - Baumgartner, Oehmichen
 
JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen
JFS 2011 - Top 10 Tools & Methoden - Baumgartner, OehmichenJFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen
JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen
 
Oracle WebLogic for DevOps
Oracle WebLogic for DevOpsOracle WebLogic for DevOps
Oracle WebLogic for DevOps
 
Integration von Security-Checks in die CI-Pipeline
Integration von Security-Checks in die CI-PipelineIntegration von Security-Checks in die CI-Pipeline
Integration von Security-Checks in die CI-Pipeline
 
Deployment mit Ansible auf JBoss Servern
Deployment mit Ansible auf JBoss ServernDeployment mit Ansible auf JBoss Servern
Deployment mit Ansible auf JBoss Servern
 
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
 
Building Enterprise Applications with AngularJS (GDG DevFest Karlsruhe 2014)
Building Enterprise Applications with AngularJS (GDG DevFest Karlsruhe 2014)Building Enterprise Applications with AngularJS (GDG DevFest Karlsruhe 2014)
Building Enterprise Applications with AngularJS (GDG DevFest Karlsruhe 2014)
 
Collaboration Days 2011 - Damit die Tester schneller ran können.
Collaboration Days 2011 - Damit die Tester schneller ran können.Collaboration Days 2011 - Damit die Tester schneller ran können.
Collaboration Days 2011 - Damit die Tester schneller ran können.
 
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
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform Engineering
 
A Hitchhiker's Guide to the Cloud Native Stack
A Hitchhiker's Guide to the Cloud Native StackA Hitchhiker's Guide to the Cloud Native Stack
A Hitchhiker's Guide to the Cloud Native Stack
 
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConf
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConfA Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConf
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConf
 
Entwicklung mit Chef und Vagrant - PHPUG HH
Entwicklung mit Chef und Vagrant - PHPUG HHEntwicklung mit Chef und Vagrant - PHPUG HH
Entwicklung mit Chef und Vagrant - PHPUG HH
 

Continuous Integration mit Hudson

  • 1. Continuous Integration mit Hudson https://hudson.dev.java.net/ » Dr. Christian Betz https://www.xing.com/profle/Christian_Betz http://twitter.com/vizMind
  • 2. Über mich Studium und Promotion in Informatik an der Uni Würzburg In Hamburg seit 2005 Geschäftsführer knowIT-Software GmbH Software-Architekt bei der Plath GmbH 2
  • 3. Continous Integration integriert nicht nur Software-Komponenten 3
  • 5. Coding 5
  • 8. Hudson „An extensible continuous integration engine“ 8
  • 10. Starten Per WebStart » java -jar hudson.war » WAR in WebContainer » deployen Webbrowser öfnen (per default http://localhost:8080/) 10
  • 11. Konfgurieren Browser-basiert: » System-Konfguration (eMail-Server, Pfade, Environment-Variablen) » Plugins » Nodes » Monitoring » Skript-Konsole » XML-basiert » Während Hudson läuft » 11
  • 12. „Free Style Software-Projekt“ Erlaubt die Kombination von „jedem“ Versions-Kontrollsystem » (VCS) mit „jedem“ Buildverfahren SVN, CVS out-of-the-box » Maven, ANT, Shell, Batch out-of-the-box, auch beliebige Kombinationen » Build-Auslöser » Abhängig von Projekten » Zeitgesteuert » Abhängig vom VCS » Trigger über http-requests » 12
  • 13. Build-Ergebnisse Je nach Projekt baut man unterschiedliche Artefakte » JARs, WARs » Installer » Source-Bundles » Builds können folgendes Ergebnis haben » Stable » Instable (Build läuft durch, aber z.B. Coverage ist unter Schwellwert) » Failed » Hudson kann Artefakte selbst archivieren oder fngerprinten » 13
  • 14. Hudson im Einsatz bei Plath 14
  • 15. Ein Beispiel-Projekt Server-Applikation als WAR » Deployment in einen JBoss-Cluster » Eclipse RCP Rich Client » zu starten per WebStart, verpackt in WAR » Deployment in den JBoss-Cluster » Eclipse Online-Hilfe » WAR mit OSGi-Bundles der Eclipse Hilfe » Deployment in den Jboss-Cluster » Client + Integrationstest » Ausführen auf Windows-Maschine » 15
  • 16. Continous Build Baut nach jedem Check-in » Projekte werden über Maven gebaut (Multi-Module Projects) » Eclipse Client wird über Eclipse PDE Build (ANT) integriert » Build-Ergebnis » Compilierter Code, wird außerhalb von Hudson nicht weiterverwendet » Unit-Tests (JUnit) » Reporting von ToDo, Code Coverage, Checkstyle, FindBugs, PMD » Email bei Veränderung des Build-Ergebnisses » 16
  • 17. Nightly Build Baut jede Nacht » Projekte werden über Maven gebaut, anderes Profl » Eclipse Client wird diesmal signiert und in WebStart-Archiv » „verpackt“ Services, Client-WebStart und Online-Hilfe werden in ein ZIP- » File gepackt Build-Ergebnis » Deploybares Artefakt, wird in ein Nexus-Repository „deployt“ » Cleanup der Datenbank (wird neu mit Testdaten gefüllt) » Deployment per Gant (aus Nexus-Repository) auf » JBoss-Cluster, wenn Build vorher erfolgreich 17
  • 18. Integration Test Baut im Anschluss an erfolgreichen Nightly Build » Ist gebunden auf einen Windows-Slave » Führt einen Rich Client + Integrationstest-Bundle aus » Reporting über Junit » Zusammenfassen der Testergebnisse von Nightly-Build und » Integration Test 18
  • 20. Plugins Hudson hat einen eigenen » Plugin-Mechanismus eingebaut (inkl. Updates) VCS » ClearCase, GIT, Mercurial, Perforce » Build » Gant, Gradle, Grails, » NAnt (.NET), Phing (PHP), rake (Ruby) 20
  • 21. Interessante Plugins ActiveDirectory Continous Integration Game » » LDAP Email Plugin Messaging » » IssueTracking-Plugins IRC » » Jabber » Bugzilla » Email » JIRA » Twitter » Trac » Deployment » Metriken » SCP » Checkstyle » FTP » Findbugs » Deploy (via Cargo) » Promoted Build Plugin » 21
  • 22. Ofene Issues Erlaubt Commit von fehlerhaftem Code (anders als z.B. » Teamcity) Synchronisation der Build-Prozesse in der IDE und auf dem » Build-Server Vordefnierte Projekttypen noch nicht ausgereift » Fehlende Plugins für Spezialfälle » bazaar » 22
  • 23. Continuous Integration als Schlüssel zum Projekterfolg? 23
  • 24. Für Hudson spricht einiges... Open Source Auch zum Monitoring » » externer Jobs geeignet (z.B. Einfach aufzusetzen » Cleanup der Testumgebung) Leicht zu erweitern (Plugins) » File fngerprinting » Einfach zu bedienen » Trend reports » Sehr stabil » Verteiltes Bauen möglich » Permanente URLs (z.B. auf » latest-build) 24
  • 25. … und noch mehr für Continuous Integration Kürzere Release-Zyklen » Fehler werden schneller entdeckt » Metriken können zentral gemessen werden » Automatische Changelogs » Transparenz für alle » 25
  • 26. 26