- Intégration continue
-
L'intégration continue est un ensemble de pratiques utilisées en génie logiciel. Elles consistent à vérifier à chaque modification de code source que le résultat des modifications ne produit pas de régression de l'application en cours de développement. Bien que le concept existait auparavant, l'intégration continue se réfère généralement à la pratique de l'extreme programming.
Pour appliquer cette technique, il faut d'abord que :
- le code source soit partagé (en utilisant des logiciels de gestion de versions tels que CVS, Subversion, git, Mercurial, etc) ;
- les développeurs intègrent (commit) quotidiennement (au moins) leurs modifications ;
- des tests d'intégration soient développés pour valider l'application (avec JUnit par exemple).
Ensuite, il faut un outil d'intégration continue tel que CruiseControl, Hudson ou Jenkins (anciennement Hudson) pour le langage Java par exemple.
Les principaux avantages d'une telle technique de développement sont :
- les problèmes d'intégration sont détectés et réparés de façon continue, évitant les problèmes de dernière minute ;
- prévient rapidement en cas de code incompatible ou manquant ;
- test immédiat des unités modifiées ;
- une version est toujours disponible pour test, démonstration ou distribution.
Pratiques
Les pratiques sont les suivantes :
- maintenir un dépôt unique de code source versionné ;
- automatiser les compilations ;
- rendre les compilations auto-testantes ;
- tout le monde committe tous les jours ;
- tout commit doit compiler le tronc sur une machine d'intégration ;
- maintenir une compilation courte ;
- tester dans un environnement de production cloné ;
- rendre disponible facilement le dernier exécutable ;
- tout le monde doit voir ce qui se passe ;
- automatiser le déploiement.
Voir aussi
- Hudson, serveur d'intégration continue pour Java
- Jenkins, serveur d'intégration continue pour Java
- Tinderbox, serveur d'intégration continue de la Mozilla Foundation
Liens externes
- Intégration continue sur le site de Agile-Swiss.org
- Continuous Integration par Martin Fowler
- Beebox
- CruiseControl sur sourceforge.net
- CruiseControl.NET sur Thought Works
- Apache Gump
- Apache Continuum
- CABIE
- TeamCity
- HUDSON
- JENKINS
Wikimedia Foundation. 2010.