SlideShare uma empresa Scribd logo
1 de 21
Démonstration d’Hudson




                       Romain Linsolas
Sun Aquarium Paris – 12 décembre 2008
Sommaire

 L’Intégration Continue
    Qu’est-ce que c’est ?
    Les bonnes pratiques
    Les intérêts
    De l’importance des tests !


 Démonstration d’Hudson
    Installation & Configuration
    Création d’un projet
    Fonctionnalités principales
    Fonctionnalités avancées
L’Intégration Continue
     Qu’est-ce que c’est ?
Définition

  L’Intégration Continue n’est pas un outil, mais une
  pratique.

  C’est le nom donné initialement par la
  communauté de l'Extreme Programming (« XP »)
  pour désigner la pratique de génie logicielle visant
  à accélérer la livraison des logiciels en réduisant
  le temps d'intégration.
Ce que l’on veut éviter !
        Début de                  Fin de
        l’Itération            l’Itération




 Intégration
     tardive




 Intégration
   Continue




               Développement


               Intégration
Architecture


                                             Serveur d’Intégration
     SCM (CVS, Subversion…)                       Continue
                              Vérification

                          Récupération du code


                                                                  Compilation +
                                                                Exécution des Tests
      Commit
                 Update




        Développeurs                           Génération de rapports,
                                                  site du projet…
Cas d’erreur


        SCM (CVS, Subversion…)                    Serveur d’Intégration
                                                       Continue
                           Vérification – Récupération
                                      du code
                                                                       Erreur




  Commit
                                   Mail d’alerte                Compilation +
                                                              Exécution des Tests




   Développeur
Cas d’erreur - Correction


          SCM (CVS, Subversion…)                    Serveur d’Intégration
                                                         Continue
                             Vérification – Récupération
                                        du code
                                                                         Corrigé !




  Correction
                                     Mail de confirmation         Compilation +
                                                                Exécution des Tests




    Développeur
Les intérêts de l’Intégration Continue (1)

  « Intégration »  Combiner toutes les
  modifications.

  « Continue »  Permanent !

  Détection rapide des erreurs  Correction rapide !
     L’I.C. ne supprime pas les bugs (hélas ) mais permet de les
     détecter plus rapidement !


  Exécution des tests.
Les intérêts de l’Intégration Continue (2)

  Automatise les tâches laborieuses (compilation,
  tests, déploiements, etc.)
      Réduction des risques !
      Plus grande confiance dans les délivrables.


  Test de l’application sur un environnement sain.

  Génération des rapports (« metrics »), du site…
Bonnes pratiques (1)

  Maintenir un seul gestionnaire de sources
  Automatiser les « builds »
      Tests automatisés (Pratique du « TDD » : Développement par
      les tests).
      Automatisation des déploiements.
  « Commits » fréquents
      Une modification = un commit.
      Commiter tous les jours.
      Chaque commit va relancer le build sur l’I.C.
  Il faut des tests !!
      Code non couvert = bug potentiel difficile à identifier !
Bonnes pratiques (2)

  Maintenir des builds rapides
     Idéalement, 10 à 15 minutes maximum.
     Éventuellement, créer plusieurs types de builds si des tests
     sont trop longs.
  Donner une grande visibilité à l’I.C.
     Tout le monde doit savoir ce qu’il s’y passe.
     Faciliter l’accès au I.C., aux derniers exécutables créés...
  Réagir vite aux problèmes levés par l’I.C.
     Corriger une erreur récente est plus facile.
     Ignorer les erreurs revient à laisser les bugs persister !
  Définir des standards, des règles :
     Au niveau codage, formatage, conventions…
     Définir des « règles comportementales » : Que faire quand un
     build échoue, que faire avant ou après un commit, etc.
Différents types de « builds »

  « Build » rapide
     Vérification fréquente du code : maximum toutes les heures,
     voire éventuellement à chaque commit.
     Compilation + exécution de tests unitaires.
     Doit se terminer en moins de 15 minutes.
  « Build » complet
     Moins fréquent (« nightly build »), plus long à terminer.
     Compilation + exécution de tous les tests (unitaires,
     fonctionnels, etc.).
  « Build de publication »
     Exécution complète.
     Création de rapports + création du site.
     Déploiement…
Les outils

  L’Intégration Continue est gérée par une
  application serveur dédiée.

  Se base sur des outils de « builds » comme Ant,
  Maven 2…

  De nombreux outils existent.
Hudson
Pourquoi Hudson ?

  Facilité d’installation et de configuration.
     Mise en place très rapide.
     « full web » : Pas de fichiers externe à modifier.


  Fonctionnalités nombreuses et puissantes.

  Facile et agréable à utiliser.

  Extensible (plugins).

  Évolution rapide (version 1.211) !
Téléchargement
https://hudson.dev.java.net/
Installation / Démarrage




                                     Hudson.war




                    java –jar hudson.war




                                   GlassFish      Apache Tomcat
Démonstration !

http://localhost:8080/hudson
Questions ?
Références

  http://www.martinfowler.com/articles/continuousIntegration.html
  https://hudson.dev.java.net/
  http://linsolas.developpez.com/articles/hudson/
  http://confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix
  http://www.citconf.com/



                                                            Contact
                                        Romain Linsolas – Consultant
                                          romain.linsolas@valtech.fr

Mais conteúdo relacionado

Mais procurados

Introduction à TeamCity
Introduction à TeamCityIntroduction à TeamCity
Introduction à TeamCityUlrich VACHON
 
JCertif 2012 : Integration continue avec Jenkins
JCertif 2012 : Integration continue avec JenkinsJCertif 2012 : Integration continue avec Jenkins
JCertif 2012 : Integration continue avec JenkinsRossi Oddet
 
20130113 04 - Tests d'integration et virtualisation - La vision IBM
20130113 04 - Tests d'integration et virtualisation - La vision IBM20130113 04 - Tests d'integration et virtualisation - La vision IBM
20130113 04 - Tests d'integration et virtualisation - La vision IBMLeClubQualiteLogicielle
 
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014Benoît de CHATEAUVIEUX
 
Omnilog 2016 - Apéro techno : Rex Identicar sur l'intégration continue
Omnilog 2016 - Apéro techno : Rex Identicar sur l'intégration continueOmnilog 2016 - Apéro techno : Rex Identicar sur l'intégration continue
Omnilog 2016 - Apéro techno : Rex Identicar sur l'intégration continueXavier Callens
 
Industrialisation Du Logiciel - Introduction Et Bonnes Pratiques
Industrialisation Du Logiciel  - Introduction Et Bonnes PratiquesIndustrialisation Du Logiciel  - Introduction Et Bonnes Pratiques
Industrialisation Du Logiciel - Introduction Et Bonnes PratiquesEmmanuel Hugonnet
 
What's Next Replay - IC / Jenkins
What's Next Replay - IC / JenkinsWhat's Next Replay - IC / Jenkins
What's Next Replay - IC / JenkinsZenikaOuest
 

Mais procurados (7)

Introduction à TeamCity
Introduction à TeamCityIntroduction à TeamCity
Introduction à TeamCity
 
JCertif 2012 : Integration continue avec Jenkins
JCertif 2012 : Integration continue avec JenkinsJCertif 2012 : Integration continue avec Jenkins
JCertif 2012 : Integration continue avec Jenkins
 
20130113 04 - Tests d'integration et virtualisation - La vision IBM
20130113 04 - Tests d'integration et virtualisation - La vision IBM20130113 04 - Tests d'integration et virtualisation - La vision IBM
20130113 04 - Tests d'integration et virtualisation - La vision IBM
 
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014
 
Omnilog 2016 - Apéro techno : Rex Identicar sur l'intégration continue
Omnilog 2016 - Apéro techno : Rex Identicar sur l'intégration continueOmnilog 2016 - Apéro techno : Rex Identicar sur l'intégration continue
Omnilog 2016 - Apéro techno : Rex Identicar sur l'intégration continue
 
Industrialisation Du Logiciel - Introduction Et Bonnes Pratiques
Industrialisation Du Logiciel  - Introduction Et Bonnes PratiquesIndustrialisation Du Logiciel  - Introduction Et Bonnes Pratiques
Industrialisation Du Logiciel - Introduction Et Bonnes Pratiques
 
What's Next Replay - IC / Jenkins
What's Next Replay - IC / JenkinsWhat's Next Replay - IC / Jenkins
What's Next Replay - IC / Jenkins
 

Destaque

Presentation Hudson
Presentation HudsonPresentation Hudson
Presentation HudsonJS Bournival
 
Les besoins et les désirs
Les besoins et les désirsLes besoins et les désirs
Les besoins et les désirssouka ina
 
Pyramide de Maslow appliquée au marketing et limites
Pyramide de Maslow appliquée au marketing et limites Pyramide de Maslow appliquée au marketing et limites
Pyramide de Maslow appliquée au marketing et limites Ninon Gregoire
 
Moi !? Heureux ?! Comment traverser sa vie professionnelle sans trop de casse...
Moi !? Heureux ?! Comment traverser sa vie professionnelle sans trop de casse...Moi !? Heureux ?! Comment traverser sa vie professionnelle sans trop de casse...
Moi !? Heureux ?! Comment traverser sa vie professionnelle sans trop de casse...Marielle de Miribel
 
Amélioration continue : PDCA ou roue de Deming (AQUAM Conseil)
Amélioration continue : PDCA ou roue de Deming (AQUAM Conseil)Amélioration continue : PDCA ou roue de Deming (AQUAM Conseil)
Amélioration continue : PDCA ou roue de Deming (AQUAM Conseil)Moulin de COLAGNE
 
présentation soutenance PFE.ppt
présentation soutenance PFE.pptprésentation soutenance PFE.ppt
présentation soutenance PFE.pptMohamed Ben Bouzid
 

Destaque (8)

Presentation Hudson
Presentation HudsonPresentation Hudson
Presentation Hudson
 
Les besoins et les désirs
Les besoins et les désirsLes besoins et les désirs
Les besoins et les désirs
 
Exercices maslow
Exercices maslowExercices maslow
Exercices maslow
 
Pyramide de Maslow appliquée au marketing et limites
Pyramide de Maslow appliquée au marketing et limites Pyramide de Maslow appliquée au marketing et limites
Pyramide de Maslow appliquée au marketing et limites
 
Pyramide de maslow
Pyramide de maslow Pyramide de maslow
Pyramide de maslow
 
Moi !? Heureux ?! Comment traverser sa vie professionnelle sans trop de casse...
Moi !? Heureux ?! Comment traverser sa vie professionnelle sans trop de casse...Moi !? Heureux ?! Comment traverser sa vie professionnelle sans trop de casse...
Moi !? Heureux ?! Comment traverser sa vie professionnelle sans trop de casse...
 
Amélioration continue : PDCA ou roue de Deming (AQUAM Conseil)
Amélioration continue : PDCA ou roue de Deming (AQUAM Conseil)Amélioration continue : PDCA ou roue de Deming (AQUAM Conseil)
Amélioration continue : PDCA ou roue de Deming (AQUAM Conseil)
 
présentation soutenance PFE.ppt
présentation soutenance PFE.pptprésentation soutenance PFE.ppt
présentation soutenance PFE.ppt
 

Semelhante a Hudson Aquarium Paris

Usine logicielle à Orange Labs
Usine logicielle à Orange LabsUsine logicielle à Orange Labs
Usine logicielle à Orange LabsEmmanuel Hugonnet
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logicielsSylvain Leroy
 
Gérez votre laboratoire de tests avec Visual Studio 2010 Lab Management
Gérez votre laboratoire de tests avec Visual Studio 2010 Lab ManagementGérez votre laboratoire de tests avec Visual Studio 2010 Lab Management
Gérez votre laboratoire de tests avec Visual Studio 2010 Lab ManagementMicrosoft
 
USI Casablanca 2010 - Industrialisation et intégration continue
USI Casablanca 2010 - Industrialisation et intégration continueUSI Casablanca 2010 - Industrialisation et intégration continue
USI Casablanca 2010 - Industrialisation et intégration continueDjamel Zouaoui
 
System Center 2012 | SCO : Retours d’expériences projets et déploiements Syst...
System Center 2012 | SCO : Retours d’expériences projets et déploiements Syst...System Center 2012 | SCO : Retours d’expériences projets et déploiements Syst...
System Center 2012 | SCO : Retours d’expériences projets et déploiements Syst...Microsoft Technet France
 
RefCard Tests sur tous les fronts
RefCard Tests sur tous les frontsRefCard Tests sur tous les fronts
RefCard Tests sur tous les frontsOCTO Technology
 
SharePoint 2010 & Team Foundation Server
SharePoint 2010 & Team Foundation ServerSharePoint 2010 & Team Foundation Server
SharePoint 2010 & Team Foundation ServerPhilippe Sentenac
 
Octo Technology - Refcard Tests Web front-end
Octo Technology - Refcard Tests Web front-endOcto Technology - Refcard Tests Web front-end
Octo Technology - Refcard Tests Web front-endFrançois Petitit
 
Octo RefCard test front-end
Octo RefCard test front-endOcto RefCard test front-end
Octo RefCard test front-endClément Dubois
 
Industrialisez vos projets Php
Industrialisez vos projets Php Industrialisez vos projets Php
Industrialisez vos projets Php ALTER WAY
 
Présentation sur Maven 2 et petit retour d'expérience
Présentation sur Maven 2 et petit retour d'expériencePrésentation sur Maven 2 et petit retour d'expérience
Présentation sur Maven 2 et petit retour d'expérienceKhanh Maudoux
 
Présentation Maven
Présentation MavenPrésentation Maven
Présentation MavenSOAT
 
Mise en oeuvre de lab management avec team foundation server 2010 et microsof...
Mise en oeuvre de lab management avec team foundation server 2010 et microsof...Mise en oeuvre de lab management avec team foundation server 2010 et microsof...
Mise en oeuvre de lab management avec team foundation server 2010 et microsof...Guillaume Brout
 
Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...
Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...
Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...Publicis Sapient Engineering
 
Qualité & Industrialisation des développements mobiles sur iOS & Android
Qualité & Industrialisation des développements mobiles sur iOS & AndroidQualité & Industrialisation des développements mobiles sur iOS & Android
Qualité & Industrialisation des développements mobiles sur iOS & AndroidThibaud CAVIN
 
L’intégration continue chez AXA France
L’intégration continue chez AXA FranceL’intégration continue chez AXA France
L’intégration continue chez AXA FranceMicrosoft
 
Intégration continue des projets PHP avec Jenkins
Intégration continue des projets PHP avec JenkinsIntégration continue des projets PHP avec Jenkins
Intégration continue des projets PHP avec JenkinsHugo Hamon
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache MavenArnaud Héritier
 
TechDays 2012 - Windows Azure - ALM
TechDays 2012 - Windows Azure - ALMTechDays 2012 - Windows Azure - ALM
TechDays 2012 - Windows Azure - ALMJason De Oliveira
 

Semelhante a Hudson Aquarium Paris (20)

Usine logicielle à Orange Labs
Usine logicielle à Orange LabsUsine logicielle à Orange Labs
Usine logicielle à Orange Labs
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logiciels
 
Gérez votre laboratoire de tests avec Visual Studio 2010 Lab Management
Gérez votre laboratoire de tests avec Visual Studio 2010 Lab ManagementGérez votre laboratoire de tests avec Visual Studio 2010 Lab Management
Gérez votre laboratoire de tests avec Visual Studio 2010 Lab Management
 
USI Casablanca 2010 - Industrialisation et intégration continue
USI Casablanca 2010 - Industrialisation et intégration continueUSI Casablanca 2010 - Industrialisation et intégration continue
USI Casablanca 2010 - Industrialisation et intégration continue
 
System Center 2012 | SCO : Retours d’expériences projets et déploiements Syst...
System Center 2012 | SCO : Retours d’expériences projets et déploiements Syst...System Center 2012 | SCO : Retours d’expériences projets et déploiements Syst...
System Center 2012 | SCO : Retours d’expériences projets et déploiements Syst...
 
RefCard Tests sur tous les fronts
RefCard Tests sur tous les frontsRefCard Tests sur tous les fronts
RefCard Tests sur tous les fronts
 
SharePoint 2010 & Team Foundation Server
SharePoint 2010 & Team Foundation ServerSharePoint 2010 & Team Foundation Server
SharePoint 2010 & Team Foundation Server
 
Conformiq
ConformiqConformiq
Conformiq
 
Octo Technology - Refcard Tests Web front-end
Octo Technology - Refcard Tests Web front-endOcto Technology - Refcard Tests Web front-end
Octo Technology - Refcard Tests Web front-end
 
Octo RefCard test front-end
Octo RefCard test front-endOcto RefCard test front-end
Octo RefCard test front-end
 
Industrialisez vos projets Php
Industrialisez vos projets Php Industrialisez vos projets Php
Industrialisez vos projets Php
 
Présentation sur Maven 2 et petit retour d'expérience
Présentation sur Maven 2 et petit retour d'expériencePrésentation sur Maven 2 et petit retour d'expérience
Présentation sur Maven 2 et petit retour d'expérience
 
Présentation Maven
Présentation MavenPrésentation Maven
Présentation Maven
 
Mise en oeuvre de lab management avec team foundation server 2010 et microsof...
Mise en oeuvre de lab management avec team foundation server 2010 et microsof...Mise en oeuvre de lab management avec team foundation server 2010 et microsof...
Mise en oeuvre de lab management avec team foundation server 2010 et microsof...
 
Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...
Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...
Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...
 
Qualité & Industrialisation des développements mobiles sur iOS & Android
Qualité & Industrialisation des développements mobiles sur iOS & AndroidQualité & Industrialisation des développements mobiles sur iOS & Android
Qualité & Industrialisation des développements mobiles sur iOS & Android
 
L’intégration continue chez AXA France
L’intégration continue chez AXA FranceL’intégration continue chez AXA France
L’intégration continue chez AXA France
 
Intégration continue des projets PHP avec Jenkins
Intégration continue des projets PHP avec JenkinsIntégration continue des projets PHP avec Jenkins
Intégration continue des projets PHP avec Jenkins
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven
 
TechDays 2012 - Windows Azure - ALM
TechDays 2012 - Windows Azure - ALMTechDays 2012 - Windows Azure - ALM
TechDays 2012 - Windows Azure - ALM
 

Mais de Alexis Moussine-Pouchkine

GlassFish OSGi - From modular runtime to hybrid applications
GlassFish OSGi - From modular runtime to hybrid applicationsGlassFish OSGi - From modular runtime to hybrid applications
GlassFish OSGi - From modular runtime to hybrid applicationsAlexis Moussine-Pouchkine
 

Mais de Alexis Moussine-Pouchkine (20)

GlassFish Article September 07
GlassFish Article September 07GlassFish Article September 07
GlassFish Article September 07
 
GlassFish OSGi - Java2days 2010
GlassFish OSGi - Java2days 2010GlassFish OSGi - Java2days 2010
GlassFish OSGi - Java2days 2010
 
GlassFish Community and future larochelle
GlassFish Community and future larochelleGlassFish Community and future larochelle
GlassFish Community and future larochelle
 
Javaee glassfish jcertif2010
Javaee glassfish jcertif2010Javaee glassfish jcertif2010
Javaee glassfish jcertif2010
 
GlassFish Community - FISL 2010
GlassFish Community - FISL 2010GlassFish Community - FISL 2010
GlassFish Community - FISL 2010
 
GlassFish OSGi - From modular runtime to hybrid applications
GlassFish OSGi - From modular runtime to hybrid applicationsGlassFish OSGi - From modular runtime to hybrid applications
GlassFish OSGi - From modular runtime to hybrid applications
 
Feuille de route (roadmap) GlassFish
Feuille de route (roadmap) GlassFishFeuille de route (roadmap) GlassFish
Feuille de route (roadmap) GlassFish
 
Java EE 6 Solutions Linux 2010
Java EE 6 Solutions Linux 2010Java EE 6 Solutions Linux 2010
Java EE 6 Solutions Linux 2010
 
GlassFish v3 at JavaZone 09
GlassFish v3 at JavaZone 09GlassFish v3 at JavaZone 09
GlassFish v3 at JavaZone 09
 
L'association GUSES
L'association GUSESL'association GUSES
L'association GUSES
 
Open Solaris 2009.06
Open Solaris 2009.06Open Solaris 2009.06
Open Solaris 2009.06
 
Java EE 6 and GlassFish portfolio
Java EE 6 and GlassFish portfolioJava EE 6 and GlassFish portfolio
Java EE 6 and GlassFish portfolio
 
Metro Web Services
Metro Web ServicesMetro Web Services
Metro Web Services
 
Retour JavaOne 2009
Retour JavaOne 2009Retour JavaOne 2009
Retour JavaOne 2009
 
Zembly
ZemblyZembly
Zembly
 
Behind The Clouds
Behind The CloudsBehind The Clouds
Behind The Clouds
 
Retour d'expérience Cap Gemini GlassFish
Retour d'expérience Cap Gemini GlassFishRetour d'expérience Cap Gemini GlassFish
Retour d'expérience Cap Gemini GlassFish
 
OpenDS - Open Source Java LDAP server
OpenDS - Open Source Java LDAP serverOpenDS - Open Source Java LDAP server
OpenDS - Open Source Java LDAP server
 
GlassFish v2.1
GlassFish v2.1GlassFish v2.1
GlassFish v2.1
 
Open MQ Jerome Moliere
Open MQ Jerome MoliereOpen MQ Jerome Moliere
Open MQ Jerome Moliere
 

Hudson Aquarium Paris

  • 1. Démonstration d’Hudson Romain Linsolas Sun Aquarium Paris – 12 décembre 2008
  • 2. Sommaire L’Intégration Continue Qu’est-ce que c’est ? Les bonnes pratiques Les intérêts De l’importance des tests ! Démonstration d’Hudson Installation & Configuration Création d’un projet Fonctionnalités principales Fonctionnalités avancées
  • 3. L’Intégration Continue Qu’est-ce que c’est ?
  • 4. Définition L’Intégration Continue n’est pas un outil, mais une pratique. C’est le nom donné initialement par la communauté de l'Extreme Programming (« XP ») pour désigner la pratique de génie logicielle visant à accélérer la livraison des logiciels en réduisant le temps d'intégration.
  • 5. Ce que l’on veut éviter ! Début de Fin de l’Itération l’Itération Intégration tardive Intégration Continue Développement Intégration
  • 6. Architecture Serveur d’Intégration SCM (CVS, Subversion…) Continue Vérification Récupération du code Compilation + Exécution des Tests Commit Update Développeurs Génération de rapports, site du projet…
  • 7. Cas d’erreur SCM (CVS, Subversion…) Serveur d’Intégration Continue Vérification – Récupération du code Erreur Commit Mail d’alerte Compilation + Exécution des Tests Développeur
  • 8. Cas d’erreur - Correction SCM (CVS, Subversion…) Serveur d’Intégration Continue Vérification – Récupération du code Corrigé ! Correction Mail de confirmation Compilation + Exécution des Tests Développeur
  • 9. Les intérêts de l’Intégration Continue (1) « Intégration »  Combiner toutes les modifications. « Continue »  Permanent ! Détection rapide des erreurs  Correction rapide ! L’I.C. ne supprime pas les bugs (hélas ) mais permet de les détecter plus rapidement ! Exécution des tests.
  • 10. Les intérêts de l’Intégration Continue (2) Automatise les tâches laborieuses (compilation, tests, déploiements, etc.)  Réduction des risques !  Plus grande confiance dans les délivrables. Test de l’application sur un environnement sain. Génération des rapports (« metrics »), du site…
  • 11. Bonnes pratiques (1) Maintenir un seul gestionnaire de sources Automatiser les « builds » Tests automatisés (Pratique du « TDD » : Développement par les tests). Automatisation des déploiements. « Commits » fréquents Une modification = un commit. Commiter tous les jours. Chaque commit va relancer le build sur l’I.C. Il faut des tests !! Code non couvert = bug potentiel difficile à identifier !
  • 12. Bonnes pratiques (2) Maintenir des builds rapides Idéalement, 10 à 15 minutes maximum. Éventuellement, créer plusieurs types de builds si des tests sont trop longs. Donner une grande visibilité à l’I.C. Tout le monde doit savoir ce qu’il s’y passe. Faciliter l’accès au I.C., aux derniers exécutables créés... Réagir vite aux problèmes levés par l’I.C. Corriger une erreur récente est plus facile. Ignorer les erreurs revient à laisser les bugs persister ! Définir des standards, des règles : Au niveau codage, formatage, conventions… Définir des « règles comportementales » : Que faire quand un build échoue, que faire avant ou après un commit, etc.
  • 13. Différents types de « builds » « Build » rapide Vérification fréquente du code : maximum toutes les heures, voire éventuellement à chaque commit. Compilation + exécution de tests unitaires. Doit se terminer en moins de 15 minutes. « Build » complet Moins fréquent (« nightly build »), plus long à terminer. Compilation + exécution de tous les tests (unitaires, fonctionnels, etc.). « Build de publication » Exécution complète. Création de rapports + création du site. Déploiement…
  • 14. Les outils L’Intégration Continue est gérée par une application serveur dédiée. Se base sur des outils de « builds » comme Ant, Maven 2… De nombreux outils existent.
  • 16. Pourquoi Hudson ? Facilité d’installation et de configuration. Mise en place très rapide. « full web » : Pas de fichiers externe à modifier. Fonctionnalités nombreuses et puissantes. Facile et agréable à utiliser. Extensible (plugins). Évolution rapide (version 1.211) !
  • 18. Installation / Démarrage Hudson.war java –jar hudson.war GlassFish Apache Tomcat
  • 21. Références http://www.martinfowler.com/articles/continuousIntegration.html https://hudson.dev.java.net/ http://linsolas.developpez.com/articles/hudson/ http://confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix http://www.citconf.com/ Contact Romain Linsolas – Consultant romain.linsolas@valtech.fr