Le concept d’intégration continue est central dans l’élaboration d’une Software Factory. En effet la Software Factory prend tout son sens quand il y a plusieurs projets à intégrer. Sans l’intégration continue on ne dispose pas d’un moyen automatisé pour construire les différents projet et s’assurer de la correcte intégration des uns avec les autres… en continue. Un serveur d’intégration continue a donc pour mission de prendre les sources du projet en provenance du gestionnaire de source, de lancer une construction du projet et de mettre à disposition des membres de l’équipe de développement le résultat qui va contenir le statut du build (succès ou échec) ainsi que les artéfacts résultants (binaires, statistiques des builds….).
Plusieurs serveur de sources existent sur la place dont CruiseControl, Hudson et le nouveau Continuum. J’ai choisi ce dernier pour son intégration naturelle avec maven. Nous allons en faire la démonstration.
L’installation de continuum peut se limiter à une simple décompression d’une archive si on emploie la méthode standalone. Il est cependant indispensable que le serveur d’intégration soit automatiquement démarré donc il faudra passer par une étape supplémentaire pour le configurer en service
sudo ln -s /home/thierry/Programmes/apache-continuum-1.2/bin/continuum /etc/init.d/continuum
sudo update-rc.d -n continuum defaults 80
Lancer alors continuum avec
sudo /etc/init.d/continuum start
Continuum se présente comme un application web dont l’url est http://localhost:8080/continuum
La première fois où on accède à cette url il faudra choisir le mot de passe administrateur du serveur continuum puis il faudra s’authentifier en tant que administrateur pour pouvoir ajouter d’autres utilisateurs.
Dans le cas de cet article nous allons simplement détailler l’ajout d’un projet.Utiliser le menu Ajouter un projet > projet maven 2 :
Comme à ce stade notre Sofware Factory ne dispose pas d’accès HTTP aux sources nous allons sélectionner le pom.xml de notre copie locale du projet. En maven 2, le pom.xml est le fichier unique qui définit les caractéristiques propres d’un projet: son nom, ses dépendances propres, l’url de son dépôt de source…
Pour que continuum trouve le projet dans Subversion nous devons renseigner cette information dans le fichier pom.xml. Voici un exemple de définition de scm.
<scm>
<connection>scm:svn:svn://thierry:thierry@localhost/vroom/trunk</connection>
</scm>
Sauver le fichier pom.xml et commiter dans subversion.
Cliquer ensuite sur le bouton browse pour choisir le fichier pom.xml
Après quelque secondes le projet est ajouté dans le groupe par défaut avec la programmation de construction par défaut : toutes les heures.
La configuration de continuum permet de définir plusieurs patrons de construction (build par heure, build journalier), de rassembler les projets dans des groupes de construction (utile pour builder des modules faisants partie d’un projet ou de projets disjoints mais faisant partie d’une suite logicielle), de définir des environnement de constructions différents (o peut avoir sur le même serveur Continuum plusieurs projets utilisant des JDK ou des versions de maven différentes) et enfin les utilisateurs du serveurs peuvent avoirs des rôles et donc des droits différents. Ce paramétrage pourra être détaillé dans un article futur ainsi que le reporting automatique des builds. Le prochain article traitera de la mise en place du serveur de repository Archiva.
Tags: Continuum Linux Maven Software Factory Ubuntu