Maîtrisez l’installation du serveur d’intégration continue open source CruiseControl. Comprenez les services que peuvent vous rendre cruise control. Découvrez les avantages et inconvénients de cruisecontrol par rapport à ses concurrents directs comme Continuum, Hudson. Automatisez les taches récurrentes liées au développement, test et déploiement de vos applications.
Liens utiles
+ de 100 tutoriaux java/jee Objis
Objis, spécialiste formation java depuis 2005
Catalogue formations Objis
Matrice comparaison serveurs d’intégration continue
Plugins CruiseControl
Documentation fichier config.xml de CruiseControl
Produit tiers : interface d’administration cc-config
Produit tiers : Plugin Firefox CruiseControl Monitor
Formation Architecture Java
Soyez prêt pour des projets ambitieux : formation architecture Java Objis
Programme
Contexte
Partie 1 : téléchargement
Partie 2 : installation
Partie 3 : analyse
Partie 4 : démarrage
Durée
15 min
Contexte, avantages et inconvénients
L’intégration continue est une technique puissante qui permet :
garder en phase les équipes de développement
limiter les risques et la complexité liée à la création par plusieurs développeurs d’un logiciel unique.
A intervalles réguliers, vous allez construire (build) et tester la dernière version de votre logiciel. Parallèlement, chaque développeur teste et valide (commit) son travail en ajoutant son code dans un lieu d stockage commun à tous les développeurs : le serveur de gestion de configuration.
Le tutoriel N°1 ‘comprendre l’intégration continue’ vous a présenté le ‘cycle vertueux de l’intégration continue’.Dans ce cycle vertueux, vous avez compris la valeur ajoutée d’un serveur d’intégration continue.
QUESTION : A quelle étape intervient un serveur d’intégration continue dans le shéma ci-dessus ?
Bien démarrer son projet
Les 4 éléments utiles pour démarrer un projet d’intégration continue sont :
Repository de code source (CVS, Clearcase, Subversion…)
Tests unitaires (JUnit, TestNG…)
Serveur d’intégration continue
Outils de communication (Mail, Tél, RSS…)
Avantages de CruiseControl
CruiseControl est le plus ancien serveur d’intégration continue. Il bénéficie ainsi :
d’une base importante d’utilisateurs et
d’une douzaine de plugins facilitant son intégration avec de nombreuses solutions de gestion de configuration et stratégies de build.
Intégration avec outils gestion code Source
CVS, Subversion, Clearcase et bien d’autres à travers des plugins CruiseControl
Intégration avec outils de build
Ant, NAnt (Ant pour .NET), Maven 1, Maven 2
Inconvénients
Pièce maîtresse de la stratégie agile de nombreux projets, CruiseControl est cependant décrié pour la courbe d’apprentissage de sa configuration.
Là ou d’autres produits (Hudson, Continuum, Luntbuild) se configurent graphiquement, CruiseControl encapsule sa configuration dans un fichier de configuration : le fichier config.xml
Quelques produits tiers contribuent cependant à une meilleur administration
l’interface swing CC-Config, permettent cependant d’administrer CruiseControl, en mettant à jour de façon persistante le fichier config.xml.
le plugin Firefox CruiseControl Monitor permet de monitorer le serveur CruiseControl
Partie 1 : téléchargement
Avec votre navigateur , allez sur la page d’accueil du produit : http://cruisecontrol.sourceforge.net/
Cliquez sur le lien ‘download’ . L’écran suivant apparaît, présentant un lien vers la dernière version de cruise control disponible.
Cliquez sur le lien correspondant à la dernière version disponible (ici cruise conrol 3.8.2). L’écran suivant apparaît.
Cliquez sur le lien cruisecontrol-bin-2.8.2.zip. Le téléchargement commence…
Une fois le téléchargement terminé, déposez le zip dans répertoire c:formationintegcontinueoutilscruisecontrol
La partie ‘téléchargement est désormais terminée. Reste à installer…
Partie 2 : installation
Dézippez le fichier cruisecontrol-bin-2.8.2.zip téléchargez dans le répertoire c:formationintegcontinuecruisecontrol-bin-2.8.2
ça y est : cruise control est installé ! Reste à le démarrer…
Partie 3 : Démarrage du serveur
Déplacez-vous dans ce répertoire d’installation avec l’invite de commande (ms-dos) et lancez : cruisecontrol.bat
Ce script initialise le processus de construction en continue et démarre le conteneur de servlet Jetty.
Le serveur CruiseControl est démarré.
Expliquez les logs de démarrage. Que s’est t’il passé ?
Changer les ports
Par défaut CruiseControl utilise les ports 8080 (serveur Jetty) et 8000 (monitoring JMX). Vous pouvez changer ces valeurs en démarrant le serveur avec paramètres webport et jmxport :
— cruisecontrol –webport 8888 –jmxport 9990
Partie 4 : Analyse
Répertoire ‘projects’
Notez dès à présent le répertoire ‘projects‘. C’est dans ce répertoire que vous allez déposer l’arborescence code source de votre application.
Une application y est déja présente par défaut, pour démonstration.
Application ‘connectfour’
L’arborescence de l’application est la suivante :
QUESTION : quel serveur de gestion de code sources a hébergé le code de ce projet ?
Répertoire ‘etc’
Ce répertoire contient des fichiers de configuration. En particulier pour sécurisez l’accès (API JAAS) aux applications web de cruissecontrol.
QUESTIONS : quels fichiers selon vous permettent de sécuriser l’accès aux applications serveur via HTTP ?
Fichier de configuration config.xml
Le fichier config.xml occupera toute notre attention par la suite pour configurer CC pour notre projet
Scripts
Remarquez les versions windows et unix des scripts, par exemple avec CruiseControl.bat et CruiseControl.sh
Répertoire lib
Le répertoire lib est le lieu de stockage des librairies du serveur
— Remarquez que CruiseControl possède en interne une copie de ANT (ici ANT 1.7.0)
Répertoire webapps
— Notez le répertoire webapps qui contient plusieurs applications, dont l’interface de monitoring web.
Testez les URLs suivantes :
— http://localhost:8080/documentation
— http://localhost:8080/cruisecontrol
— http://localhost:8080/dashboard
— http://localhost:8080/cc-config
Expliquez
Partie 4 : Interface monitoring
CruiseControl vous permet de suivre les résultats de vos builds successifs.
lancez un navigateur et allez sur l’adresse : http://localhost:8080/dashboard . L’écran suivant apparaît
Onglet DashBoard
Vous pouvez à tout moment connaître l’état de vos builds :
— Lancé et terminé avec succès (vert)
— Lancé et terminé en echec (rouge)
— En court d’exécution (orange)
non lancé (gris)
ici, vous constatez qu’un projet a été lancé et exécuté avec succès : le projet connectfour, livré par défaut avec CruiseControl.
Onglet Builds
Expliquez
Détail résultats d’un build
L’application ‘cruisecontrol’ (http://localhost:8080/cruisecontrol) permet d’obtenir des informations générales ou détaillées sur un build spécifique.
Informations générales
— Le statut du build (ici en attente)
— La dernière fois qu’un build a été lancé avec résultat SUCCES
— La dernière fois qu’un build a été lancé avec résultat ECHEC
— le nom du build
Informations détaillées
Lancez un build en appuyant sur le bouton ‘build’.
Etudier les logs de la console (ms-dos),
Etudiez le changement du statut du build.
Cliquez sur le lien ‘connectfour’ pour avoir les informations du suild.
Expliquez :
— Combien de temps a duré le build ?
— Y at’il eu des erreurs ?
— Quelle livraison a été créée ?
Combien de tests unitaires ont été lancés ? lesquels ?
— Quelle cibles Ant ont été lancés.
Interface JMX
lancez un navigateur et allez sur l’adresse : http://localhost:8000 . L’écran suivant apparaît
Il s’agit de la console de monitoring JMX des objet MBean du serveur CruiseControl.
Il vous permettra, par exemple de modifier la date et ne nom (label) du prochain build planifié, ou encore l’interval entre 2 builds.
Conclusion
Dans ce tutoriel, vous avez installé et analysé CruiseControl. Vous avez vu les avantages et inconvénient de ce produit, son contexte d’utilisation. Le tutoriel suivant vous permettra de configurer dans CruiseControl un projet construit avec Ant.
Formation Architecture Java
Soyez prêt pour des projets ambitieux : formation architecture Java Objis