Normandy JUG integration Continue
-
Upload
laurent-desechalliers -
Category
Technology
-
view
994 -
download
1
description
Transcript of Normandy JUG integration Continue
L'Intégration Continue dans l'univers Java
Juin 2009
Dimitri BaeliLaurent Deséchalliers
Introduction
The Joel Testby Joel On Software
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 ?
The Joel Test
L'intégration Continue
1. Que celui qui n'a jamais ...2. Les besoins d'intégration3. Un build de qualité4. Mise en Oeuvre5. Les outils6. Retours d'expérience7. Pour aller plus loin
Intégration Continue
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 livrablesEn toute indépendanceDe façon reproductibleSur tous les environnements
Alertes / RésultatsJuste celles qu'il fautConsultables et compréhensiblesRapides
2. Les besoins d'intégration
L'automatisation !!Minimiser les étapes manuellesProfiter de la puissance des machinesParalléliser les environnementsMultiplier les chances de trouver des problèmesMonitoring qualité et traçabilité
2. Les besoins d'intégration
Règles d'équipeCommit fréquentCommit atomiqueRégler les problèmes sur le champEcrire des tests déterminants
Se concentrer sur l'essentielLa fabricationRé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
AutomatisationDoit pouvoir être joué en localExécuté sur un serveur isolé et dédiéAussi souvent que possibleA la demande
Attention !!Le build doit être rapideLe build ne doit pas échouer à tordLes notifications doivent être pertinentesNe pas déclencher trop vite un build
3. Un build de qualité
Les facteurs de qualitéTests rapides et couvrantsCode propre (format, warnings)IDE Correctement configurésAnalyse 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 sourcesRéférenceGestion des contributions (Commit)Résolution des conflits
2. Script de buildMaven, Ant/Ivy, Gradle, Gant, Easyant, ...
3. Ecriture de tests automatiques4. Plannification des builds5. Analyses de code, reporting5. Publier les résultats
5. Retours d'expérience
5. Retour d'expérience : PME
Exemple concretÉquipe de 4 développeurs/euses1 PC a 300€Logiciels open-source
Svn / Maven2 / ArtiFactoryContinuumSonar
L'IC est souvent la « dernière roue du carrosse »
Pourtant un facteur de productivité et qualitéVision non « court termiste »
SVNHistorique sources
Maven2Build sourceGestion (versionnée) des dépendances
ContinuumBuild AutomatiqueTest unitaire
ArtiFactoryRepository Maven2
SonarQualité code
5. Retour d'expérience : PME
Ressources :Installer le serveur
Compétences Linux
Installer les applicatifs
Compétences Java/Linux
Paramétrer les applicatifs
Affiner les réflexions
Coût 300€ (pc tour)5 jours travail
5. Retour d'expérience : PME
5. Retours d'expérience : Build eXo
16 Projets :+1-4 branches par projets80 développeurs sur 4 paysScrumDépendances entre les projets3 AppServs, 2 OS, 3DB : 18 configurationsSvn, Hudson, Maven2, Emma, Jira, EclipseTous 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 TeamCityIntégration Eclipse/Idea top !Build distant, Pre-Commit depuis l'IDEBuild distribuéSuivi des responsabilitéshttp://teamcity.jetbrains.com/overview.html
HudsonOpen sourceBuild distribuéBeaucoup de plugins (emma, violations, ...) http://hudson.jboss.org/hudson
6. Les outils du moment
Atlassian BambooBuild distribuésAnalysis du code, StatisitquesCollaboration, Telemetriehttp://opensource.bamboo.atlassian.com/
ThoughtWork CruiseIssue de CruiseControlGestion du cycle de release !Build distribué
7. Pour aller plus loin
7. Pour aller plus loin
Sonar by SonarSourcesOpen Source, initié par HortisCollecte des rapports de buildAnalyse du codeTime MachineSuggestion d'action
http://nemo.sonar.codehaus.org
7. Pour aller plus loin
Hortis Sonar