Installation et configuration de Cruise Control

Septembre 2016

L’intégration qui permet de révéler les éventuelles erreurs et incompatibilités des différentes parties réalisées par chaque développeur de l’équipe.
Cruise Control, étant un serveur d’intégration continue, permet d’automatiser cette phase d’intégration selon la succession des tâches suivantes :
  • récupération des fichiers sur le SCM (Source Code Management)
  • compilation du code source
  • création de l’archive de l’application (Ear, Jar, War, …)
  • déploiement de l’archive
  • exécution d’une suite de tests (Junit)
  • notification du résultat (Mail, rss, …)


Nous allons donc commencer par une explication de ce qu'est l'intégration continue, puis nous expliquons comment configurer CruiseControle.

Intégration continue


L'intégration continue est une technique de développement/management de projet qui implique d'intégrer très fréquemment le travail de tous les membres d'une équipe. Ensuite, une compilation automatique doit être lancée pour vérifier les éventuelles erreurs de compilation du projet puis si possible les tests unitaires doivent aussi être lancés.
Concrètement, l'intégration continue est le fait d'automatiser des compilations fréquentes du code source d'une équipe incluant les derniers changements de tous ses membres. La plupart des outils d'intégration continue sont capable de faire les actions suivantes :
  • lancement d'une intégration périodique (toutes les heures par exemple)
  • mise à jour du code depuis un gestionnaire de code source
  • compilation du code source
  • lancement des tests unitaires
  • envoi de mails automatique aux personnes concernés (celui qui a fait l'erreur recevra le mail d'erreur)
  • envoi d'un mail de rapport
  • déploiement sur un serveur de test
  • création de statistiques


En réalité, la plupart des serveurs d'intégration continue se basant sur ANT ou MAVEN (ou les deux), ils permettent une liste quasi infinie d'actions possibles.
Les bénéfices d'une intégration continue sont indéniables, elle permet de vérifier petit à petit le travail de toute l'équipe, de détecter les erreurs beaucoup plus rapidement et d'assurer la cohérence de l'application. Couplé à un lancement des tests, elle permet de voir l'évolution de la qualité de l'application et montre les progrès de l'équipe en temps réel. Le plus souvent, ces outils sont livrés avec des modules de statistique très intéressants.
Bien sur, utiliser un serveur d'intégration continue implique de se donner quelques règles de développements sans lesquels l'intérêt d'une intégration continue est amoindri:
  • La compilation doit être automatisé (ANT, MAVEN, ...), aucune intervention humaine doit être nécessaire pour avoir une compilation réussie
  • Des commit régulier du code source doivent être réalisés par l'équipe
  • Des tests automatiques doivent pouvoir être lancés (JUnit par exemple, couplé à ANT ou MAVEN)
  • Un responsable doit recevoir les rapports et vérifier que les personnes recevant les erreurs les corrigent. En d'autre terme, les résultats de l'intégration continue doivent être utilisés! Là, on arrive plus dans la gestion de projet...

Pour aller plus loin, l'excellent article de Martin Flower(en anglais): http://www.martinfowler.com/articles/continuousIntegration.html

Installation


Il vous faudra tout d’abord télécharger Cruise Control à l’adresse suivante : http://cruisecontrol.sourceforge.net/download.html
A noter qu’il faut vérifier l’existence de la variable d’environnement JAVA_HOME qui pointe sur le répertoire du JDK.
Ensuite, lancez Cruise control (via le menu Programme ou via le fichier .bat installé) et tout fonctionne. Cruise control est fournit avec une application d'exemple, il lance par défaut une application de reporting ‘Cruise Config’, un dashboard, un serveur JMX, et tout ça accessible via un simple browser.

Cruise Config


Lancez tout d'abord l'application de configuration de Cruise Control (Cruise Config) qui est une application Java Webstart, ce qui est fort pratique car vous pouvez alors la lancer depuis un ordinateur différent de votre serveur d'intégration.
Une fois l’application lancée, vous devriez voir un panneau vide.
  • Utilisez application -> configure servers to monitor ... option de menu pour configurer les serveurs à contrôler.
  • Appuyez sur le bouton Add pour ajouter un nouveau serveur à contrôler.




Entrez les informations suivantes sur le serveur que vous souhaitez surveiller.
  • Server Name : vous pouvez attribuer un nom arbitraire à votre serveur. Il sera affiché dans l'onglet de la fenêtre de suivi. Il est utilisé pour l'affichage seulement.
  • Host Name : Le nom du serveur, sur lequel Cruise Control est installé
  • RMI Port : Le numéro de port qui a été adopté dans le serveur Cruise via le paramètre –rmiport. On peut mettre 1090 par exemple, l’essentiel qu’il ne soit pas utilisé
  • Monitor Time : Le nombre de secondes d'attente avant les mises à jour.



Une fois vous avez mis en place un ou plusieurs serveurs, appuyez sur le bouton OK pour terminer la configuration du serveur. La demande fera apparaître un onglet pour chacun avec l'état actuel des projets en eux.


A voir également :

Ce document intitulé «  Installation et configuration de Cruise Control  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.