vers l'accueil formulaire de contact

Tutoriel intégration continue : installation CruiseControl

Votre formation 'Intégration continue' avec Objis ! 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

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.

PNG - 99.4 ko
tutoriel-integration-continue-objis-cycle-vertueux

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/

PNG - 179.3 ko
tutoriel-integration-continue-installation-cruise-control-1

- Cliquez sur le lien ’download’ . L’écran suivant apparaît, présentant un lien vers la dernière version de cruise control disponible.

PNG - 19.7 ko
tutoriel-integration-continue-installation-cruise-control-2

- Cliquez sur le lien correspondant à la dernière version disponible (ici cruise conrol 3.8.2). L’écran suivant apparaît.

PNG - 8.7 ko
tutoriel-integration-continue-installation-cruise-control-3

- Cliquez sur le lien cruisecontrol-bin-2.8.2.zip. Le téléchargement commence...

PNG - 13.7 ko
tutoriel-integration-continue-installation-cruise-control-4

- Une fois le téléchargement terminé, déposez le zip dans répertoire c :\formationintegcontinue\outils\cruisecontrol

PNG - 4 ko
tutoriel-integration-continue-installation-cruise-control-5

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 :\formationintegcontinue\cruisecontrol-bin-2.8.2

PNG - 27.6 ko
tutoriel-integration-continue-installation-cruise-control-6

ç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.

PNG - 217.6 ko
tutoriel-cruise-cr=ontrol-installation-demarrage

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.

PNG - 5.7 ko
tutoriel-cruise-cr=ontrol-installation-repertoire-projects

Une application y est déja présente par défaut, pour démonstration.

Application ’connectfour’

L’arborescence de l’application est la suivante :

PNG - 16.6 ko
tutoriel-cruise-cr=ontrol-installation-repertoire-projects-connectfour

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.

PNG - 25.6 ko
tutoriel-cruise-cr=ontrol-installation-repertoire-etc

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

PNG - 19.1 ko
tutoriel-cruise-cr=ontrol-installation-repertoire-lib

— 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.

PNG - 4.1 ko
tutoriel-cruise-cr=ontrol-installation-repertoire-webapps

- 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

PNG - 56.2 ko
tutoriel-integration-continue-installation-cruise-control-7

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

PNG - 20.4 ko
tutoriel-integration-continue-installation-cruise-control-8

- 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

PNG - 25.4 ko
tutoriel-integration-continue-installation-cruise-control-9

— 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.

PNG - 40.8 ko
tutoriel-cruise-control-resultat-build-connectfour

- 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

PNG - 52.2 ko
tutoriel-integration-continue-installation-cruise-control-10

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.

Pour aller plus loin

Votre formation 'Intégration continue' avec Objis !

Calendrier formations Objis 2010

PNG - 22.2 ko
calendrier-formations-java-j2ee-objis-2010

Contact

Douglas MBIANDOU Contactez Douglas Mbiandou, responsable formations Objis pour :
- Etre informé des nouveaux tutoriaux publiés
- Etudier ensemble votre projet de formation JAVA
- Donner votre avis sur ce tutoriel JAVA
- Gagner une formation JAVA Objis lors du salon Solutions linux 2010
- Nous rencontrez lors du salon Solutions linux 2010