Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this presentation? Why not share!

Normandy JUG integration Continue

on

  • 893 views

 

Statistics

Views

Total Views
893
Views on SlideShare
892
Embed Views
1

Actions

Likes
0
Downloads
17
Comments
0

1 Embed 1

http://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Normandy JUG integration Continue Normandy JUG integration Continue Presentation Transcript

  • L'Intégration Continue dans l'univers Java Juin 2009 Dimitri Baeli Laurent Deséchalliers
  • Introduction The Joel Test by Joel On Software
  • The Joel Test 1- Utilisez vous un gestionnaire de sources ? 2- Pouvez-vous faire un build en une seule étape ? ? 3- Avez-vous des Builds journaliers ? 4- Avez-vous un gestionnaire de Bugs ? 5- Corrigez-vous les bugs avant d'écrire du code ? 6- Votre planning est-il à jour ? 7- Avez-vous des spécifications ? 8- Vos développeurs travaillent-ils au calme ? 9- Avez-vous les meilleurs outils permis par votre budget ? 10- Avez-vous des tests / testeurs ? 11- Les candidats écrivent-ils du code ? 12- Testez-vous l'utilisabilité avec vos collègues ?
  • L'intégration Continue
  • Intégration Continue 1. Que celui qui n'a jamais ... 2. Les besoins d'intégration 3. Un build de qualité 4. Mise en Oeuvre 5. Les outils 6. Retours d'expérience 7. Pour aller plus loin
  • 1. Que celui qui n'a jamais ... Commité sans vérification Fait de commit partiel Commité du code qui compile mais ne marche pas Fait de régressions inadmissibles Fait des changements d'API Fait un commit tardif impactant … en a déjà été victime !
  • 2. Les besoins d'intégration
  • 2. Les besoins d'intégration Garantir la qualité des livrables En toute indépendance De façon reproductible Sur tous les environnements Alertes / Résultats Juste celles qu'il faut Consultables et compréhensibles Rapides
  • 2. Les besoins d'intégration L'automatisation !! Minimiser les étapes manuelles Profiter de la puissance des machines Paralléliser les environnements Multiplier les chances de trouver des problèmes Monitoring qualité et traçabilité
  • 2. Les besoins d'intégration Règles d'équipe Commit fréquent Commit atomique Régler les problèmes sur le champ Ecrire des tests déterminants Se concentrer sur l'essentiel La fabrication Réagir aux résultat de l'intégration
  • 3. Un build de qualité
  • 3. Un build de qualité : Le Processus Compilation Tests unitaires Analyse Qualité du code Tests de Déploiement / Smoke Tests Tests d'intégration Génération de la Documentation Packaging Publication
  • 3. Un build de qualité : L'automatisation Automatisation Doit pouvoir être joué en local Exécuté sur un serveur isolé et dédié Aussi souvent que possible A la demande Attention !! Le build doit être rapide Le build ne doit pas échouer à tord Les notifications doivent être pertinentes Ne pas déclencher trop vite un build
  • 3. Un build de qualité Les facteurs de qualité Tests rapides et couvrants Code propre (format, warnings) IDE Correctement configurés Analyse du code (findbug, pmd, …) Historique des builds par version/révisions et informations complémentaires
  • 4. Mise en oeuvre
  • 4. Mise en oeuvre : Les étapes 1. Gestionnaire de sources Référence Gestion des contributions (Commit) Résolution des conflits 2. Script de build Maven, Ant/Ivy, Gradle, Gant, Easyant, ... 3. Ecriture de tests automatiques 4. Plannification des builds 5. Analyses de code, reporting 5. Publier les résultats
  • 5. Retours d'expérience
  • 5. Retour d'expérience : PME Exemple concret Équipe de 4 développeurs/euses 1 PC a 300€ Logiciels open-source Svn / Maven2 / ArtiFactory Continuum Sonar L'IC est souvent la « dernière roue du carrosse » Pourtant un facteur de productivité et qualité Vision non « court termiste »
  • 5. Retour d'expérience : PME SVN ArtiFactory Historique sources Repository Maven2 Maven2 Sonar Build source Qualité code Gestion (versionnée) des dépendances Continuum Build Automatique Test unitaire
  • 5. Retour d'expérience : PME Ressources : Coût Installer le serveur 300€ (pc tour) Compétences 5 jours travail Linux Installer les applicatifs Compétences Java/Linux Paramétrer les applicatifs Affiner les réflexions
  • 5. Retours d'expérience : Build eXo 16 Projets : +1-4 branches par projets 80 développeurs sur 4 pays Scrum Dépendances entre les projets 3 AppServs, 2 OS, 3DB : 18 configurations Svn, Hudson, Maven2, Emma, Jira, Eclipse Tous les serveurs sur Amazon EC2 ! A venir: Sonar sous peu … Site de centralisation des binaires et résultats
  • 6. Les outils du moment
  • 6. Les outils du moment IntelliJ TeamCity Intégration Eclipse/Idea top ! Build distant, Pre-Commit depuis l'IDE Build distribué Suivi des responsabilités http://teamcity.jetbrains.com/overview.html Hudson Open source Build distribué Beaucoup de plugins (emma, violations, ...) http://hudson.jboss.org/hudson
  • 6. Les outils du moment Atlassian Bamboo Build distribués Analysis du code, Statisitques Collaboration, Telemetrie http://opensource.bamboo.atlassian.com/ ThoughtWork Cruise Issue de CruiseControl Gestion du cycle de release ! Build distribué
  • 7. Pour aller plus loin
  • 7. Pour aller plus loin Sonar by SonarSources Open Source, initié par Hortis Collecte des rapports de build Analyse du code Time Machine Suggestion d'action http://nemo.sonar.codehaus.org
  • 7. Pour aller plus loin Hortis Sonar