13
juil
08

Intégration Continue

Un billet concernant quelque chose qui me tient particulier à coeur en tant que développeur.

L’intégration continue est un ensemble de pratiques liées au génie logiciel et qui permettent d’obtenir facilement un instantané de l’état d’un projet.

Je m’explique, mettre en place l’intégration continue sur un projet permet à tout moment de :

  • Extraire les sources du repository (CSV, SVN, ClearCase, …)
  • Vérifier que le code compile
  • Vérifier que les tests unitaires sont OK
  • Packager une version
  • Analyser le code source à l’aide de plugins tels que Checkstyle, Findbugs, …
  • Vérifier la couverture de code des tests unitaires (Cobertura)
  • Générer les rapports HTML des actions précédemment citées

Alors concrètement, comment mettre ça en place? Voici comment j’ai fait sur ma mission actuelle :

Matériel mis à ma disposition :

  • 1 PC sous XP (2GHz, 2Go de RAM)

Besoins logiciels :

  • Maven2 : pour créer les scripts de compilation, packaging, reporting, …
  • Continuum : pour gérer la planification de l’exécution des scripts Maven
  • WAMP : héberge les rapports HTML, ainsi qu’un Wiki interne
  • Client ClearCase : permet d’extraire les sources du projet

Tous les jours à 6h du matin, Continuum lance l’extraction des sources du projet.

Tous les jours à 7h du matin, Continuum lance la compilation, l’exécution des tests, l’exécution de l’audit de code, et génère les rapports HTML.

De ce fait, un développeur qui arrive au travail à 8h peut déjà consulter l’état du projet :

  • Est-ce que toutes les actions ont l’état Success ?
  • Si la réponse est NON : Quelle est la cause? Un jar manquant, un fichier qui n’a pas été commité par un développeur, … dans ce cas, il faut réagir et, par exemple, modifier le script de packaging pour ajouter les dépendances manquantes.
  • Si la réponse est OUI : Le code est-il propre? Le code est-il vraiment bien testé (couverture) ?

Un développeur du projet peut à loisir déclencher via Continuum les mêmes actions que celles qui sont exécutées quotidiennement.

Le mot de la fin :

En responsabilisant chacun des développeurs et en faisant en sorte d’agir à chaque erreur, on réduit l’effort à apporter le jour des livraisons :-)


8 Réponses vers “Intégration Continue”


  1. 14 juillet 2008 à 20:20

    J’aime beaucoup ton “mot de la fin”. En effet, je constate aujourd’hui (malheureusement) une déresponsabilisation constante des développeurs. Les sociétés mettent en place des encadrements de folie enlevant toute autonomie ou marge de manoeuvres à ces derniers.

    Il est donc bon de mettre en avant des pratiques comme “l’intégration continue” qui encouragent les développeurs à prendre leurs responsabilités ; le métier n’en est que plus passionnant.

  2. 2 oh??
    15 juillet 2008 à 17:10

    “De ce fait, un développeur qui arrive au travail à 8h”… oh?? ça existe?
    ;-) )

  3. 3 Julien
    15 juillet 2008 à 20:48

    @oh??
    Oui ça existe, c’est le même développeur qui part à 17h ;-)

    @Greg
    Je trouve qu’en plus, c’est plutot fun de corriger ses erreurs pour faire baisser le score findbugs/checkstyle, et on prend par la même occasion de bonnes habitudes de code.

  4. 4 Tybo
    16 juillet 2008 à 14:55

    Je vois qu’on partage le même point de vue!!! ;-) Vive l’intégration continue!

    Dans ma boîte ils utilisent les produits Atlassian (Bamboo, Jira, Confluence). Très bonne intégration de tout ça!

  5. 17 juillet 2008 à 8:49

    Continuum a pris du retard par rapport à Hudson… ;)

  6. 6 Julien
    17 juillet 2008 à 19:16

    @AlexisMP

    Pourrais-tu préciser ta pensée en nous exposant les ‘plus’ que Hudson possède par rapport à Continuum?

    Je viens d’installer Hudson, et pour l’instant je n’ai pas noté de grandes différences, j’ai vu qu’il y avait une génération de graphiques. Mais … what else? Je l’ai trouvé un poil moins ergonomique que Continuum, mais peut être parce que j’ai trop l’habitude de ce dernier.

  7. 19 juillet 2008 à 1:21

    Pour faire court: communauté et plugins.

  8. 8 vincentboniakos
    4 mars 2009 à 0:30

    J’utilise aussi Hudson et pour faire court : oui les plugins sont géniaux, en revanche je trouve que beaucoup d’entre eux sont mal documentés ou mal finis.


Laisser un commentaire




BIENVENUE

Java Village fait son bout de chemin depuis maintenant environ un an, et l'équipe en profite au passage, au nom des différents contributeurs, de vous remercier de vos visites mais aussi de vos participations. A bientôt en espérant vous voir venir nous lire de plus en plus souvent!

BLOG STATS

  • 74,614 hits

STATISTIQUES

Vous êtes à présent environ 1500 visiteurs par mois à venir visiter Java Village, ce qui représente presque le double de visiteurs par rapport aux résultats affichés il y a un trimestre. Merci à tous.

Livre du moment…

SCJP

a

Partenaires