JetBrains TeamCity 4


précédentsommairesuivant

II. L'intégration continue

II-A. Principes

Avant de parler de l'outil JetBrain TeamCity, je vous propose un petit rappel sur ce qu'est l'intégration continue et ses intérêts.

L'intégration continue ("I.C.") est le nom donné initialement par la communauté de l'Extreme Programming (" XP ") pour désigner la pratique de génie logiciel visant à accélérer la livraison des logiciels en réduisant le temps d'intégration.

Pour que l'intégration continue puisse se faire correctement, il faut tout d'abord partager les sources du projet via un serveur de Gestion de Contrôle des Sources (ou " SCM " pour Source Control Management) tel que CVS ou Subversion. Il faut également que les équipes de développements postent (committent) régulièrement les modifications apportées au code, de préférence plusieurs fois par jour. Enfin, il est nécessaire de disposer de tests unitaires qui seront exécutés par l'outil JUnit ou TestNG par exemple.

La présence des tests n'est en réalité pas obligatoire, mais elle est très fortement conseillée. Ils ont en effet pour tâche principale de vérifier que le code ne subit pas de régression, et que les fonctions implémentées réalisent correctement leurs tâches. Plusieurs types de tests existent (tests unitaires, fonctionnels, graphiques, de déploiement, etc.), chaque type ayant un rôle précis dans la vérification de l'application et de son code. Les tests étant un (très) vaste sujet, nous ne nous y étendrons pas davantage dans cet article.

Des outils vont alors se charger de vérifier régulièrement les modifications sur le SCM afin d'assurer la non régression de l'application, en compilant l'ensemble du projet et en en exécutant les tests unitaires.

Globalement, les principaux intérêts de l'IC sont les suivants :

  • vérification fréquente du code, et de sa bonne compilation ;
  • réalisation des tests unitaires et / ou fonctionnels, voire tests d'intégration ;
  • mise à disposition éventuelle d'une version testable comportant les dernières modifications du code (on pourra ainsi faire déployer son WAR sur un serveur Tomcat tous les jours) ;
  • possibilité de créer des rapports périodiques exprimant la qualité du code, la couverture des tests, etc. Si le projet est configuré pour Maven, alors on pourra créer le site du projet qui contiendra l'ensemble de ces rapports.

Les deux premiers avantages de cette liste montrent que l'IC permet de détecter quasi-immédiatement la présence d'un problème dans le code... et donc d'y apporter une solution instantanément !

II-B. Outils pour l'intégration continue

II-B-1. De l'intérêt des outils

On l'a vu dans le chapitre précédent, l'intégration continue est avant tout une question de méthodes, de processus. Toutefois, il ne peut y avoir d'intégration continue au sein d'un projet sans un outil adéquat. Ces outils vont avoir pour but essentiel d'automatiser les processus répétitifs tels que la construction du projet, l'exécution des tests unitaires, etc. Bien évidemment, leurs tâches ne se limitent pas à cela, puisque l'on retrouve souvent les fonctionnalités comme :

  • des systèmes évolués d'alertes (par mail, messageries instantanées...) lorsqu'un problème est rencontré ;
  • la construction de projets en parallèle ;
  • la surveillance des gestionnaires de builds pour lancer les builds ;
  • l'historique des builds ;
  • la sécurité ;
  • la création de nombreux rapports ;
  • l'intégration avec des outils externes (outils de gestions de bugs, IDE, etc.) ;
  • etc.

II-B-2. Les outils existants

Il existe aujourd'hui de nombreux outils d'intégration continue. Nous n'allons pas aller dans le détail de chacun d'eux, mais voici une liste (loin d'être exhaustive) des principaux outils existants dans ce domaine :

Une page faisant un comparatif assez complet entre la plupart des outils d'intégration continue existants est disponible ici.

III. JetBrains TeamCity

III-A. JetBrains

JetBrains est une société tchèque (le centre de R&D se situant en Russie), bien connue dans le monde Java en particulier en tant qu'éditrice de l'outil de développement ("IDE") IntelliJ IDEA, dont la version 8 vient juste de sortir. JetBrains est également la société éditrice de l'IDE RubyMine pour le Ruby and Rails.
Les pratiquants de .Net connaissent surtout JetBrains pour leur add-on Resharper, qui est tout simplement le meilleur add-on existant pour Visual Studio .Net.
Enfin, l'un des autres produits majeurs au sein de leur catalogue est TeamCity, leur outil adressant la problématique de l'intégration continue, et qui est le sujet de notre article.

III-B. TeamCity

III-B-1. Introduction et historique

Comme nous l'avons dit, TeamCity est l'outil d'intégration continue de JetBrains

Le tableau ci-dessous montre l'évolution des versions de l'outil TeamCity au cours du temps, et met en lumière le fait qu'il s'agit d'un produit relativement récent, puisque la première version officielle n'a que deux ans.

Date Version
Novembre 2008 TeamCity 4.0
Décembre 2007 TeamCity 3.1
Avril 2007 TeamCity 2.0
Octobre 2006 TeamCity 1.0

III-B-2. Licences

TeamCity est un logiciel commercial. Il existe aujourd'hui quatre types de licence que voici :

Licence Prix Commentaires
Enterprise Server License 1800 euros Edition complète de TeamCity (avec une limitation à 3 agents).
Professional Server License Gratuit Edition basique de TeamCity (limitations à 3 agents, 20 configurations de builds et 20 utilisateurs).
Build Agent License 270 euros par agent Permet de disposer de plus d'agents de build.
Open Source License Gratuit Correspond à la licence Entreprise, mais n'est proposée qu'aux projets open-source, et pour une durée d'un an éventuellement renouvellable.

Les possesseurs de la version Entreprise de TeamCity 3.x peuvent migrer vers la version Entreprise de TeamCity 4.0 gratuitement ! C'est assez appréciable...

La gratuité de la version professionnelle est vraiment une bonne chose, car cela permet aux petites structures de disposer à peu de frais d'un excellent outil d'intégration continue. Les grandes structures pourront, quant à elles, tester - et valider - le choix de TeamCity en évaluant la version Professionnelle, avant de s'orienter vers la version Entreprise, qui s'avère bien plus adaptée à gérer un grand nombre de projets sur lesquels peuvent travailler plusieurs dizaines, voire centaines de personnes.
La version Entreprise, en plus de ne pas être limitée en nombre d'utilisateurs et de configurations de build (qui sont tous deux limités à 20 sur la version Professionnelle), permet de définir des rôles propres à chaque projet, et gère les authentifications NT et LDAP.

III-C. Environnements supportés

Comme cela a été dit précédemment, l'intégration continue ne saurait fonctionner sans un système de gestion de sources, "SCM". JetBrains TeamCity supporte les systèmes suivants:

  • Borland StarTeam 6 et au delà1;
  • CVS2;
  • IBM Rational ClearCase, modes Base et UCM1;
  • Microsoft Visual SourceSafe 6 et 20051;
  • Perforce1;
  • Subversion2;
  • Team Foundation Server 2005 et 20081.

1 L'application client doit être installée séparément pour être utilisable par TeamCity.
2 L'application client est intégré directement dans TeamCity et ne nécessite donc pas d'installation extérieure.

D'un point global, l'image ci-dessous schématise l'ensemble des environnements supportés par TeamCity, qu'il s'agisse de SCM, d'IDE, de plateforme de développement, ou encore de navigateurs Internet :

Image non disponible

III-D. Nouveautés de la version 4.0

Les principales nouveautés apportées par la version 4.0 de TeamCity sont les suivantes :

  • builds "composites", avec possibilité de répartir un même build entre plusieurs agents ;
  • builds historiques, à savoir la construction d'un projet basé sur les sources utilisées par un build antérieur ;
  • réordonnancement de l'exécution des tests, afin de faire jouer ceux qui sont le plus sujets à l'échec en premier ;
  • nouvelles statistiques ;
  • possibilité de commenter les builds terminés ;
  • amélioration du plugin Eclipse ;
  • meilleur support des projets .Net ;
  • améliorations de l'interface graphique ;
  • etc.

Voir ici la roadmap de la version 4.0 de TeamCity.

IV. Installation et configuration de TeamCity

Etant donné que l'installation et la configuration de TeamCity sont indépendantes de la plateforme de test (Java ou .Net), nous traiterons cette partie à part.

IV-A. Installation

TeamCity demande tout d'abord une JRE (Java Runtime Environment) dont la version est au moins égale à 5.0. L'outil tourne sur un serveur J2EE, de type Tomcat, la version 6 étant recommandée, mais fonctionne quand même sur une version 5. Enfin, TeamCity peut être hébergé sur un environnement Windows XP (ce qui sera notre cas), Linux ou MacOS X, le système Solaris 10 étant a priori utilisable. Cette page regroupe l'ensemble des informations relatives à la configuration nécessaire pour faire tourner TeamCity.

Nous choisissons de télécharger le package compressé TAR.GZ, qui correspondant à une installation manuelle de l'outil. Il existe cependant une version sous forme d'exécutable pour Windows, peut être plus facile à utiliser.

La procédure complète d'installation se trouve ici.

Nous opterons pour la solution de facilité, à savoir que nous utiliserons la configuration par défaut, à l'exception toutefois de l'utilisation de la base de données (MySQL). Le serveur sera donc accessible via l'url par défaut, à savoir http://localhost:8111.

IV-B. Premiers pas

La première chose que l'on a à faire, une fois le serveur démarré, c'est d'accepter les conditions d'utilisation du logiciel, puis de créer le compte d'administrateur. Nous vous passons les détails, mais tout est expliqué ici. C'est agréable d'avoir cette création sous forme graphique, et non sous la forme d'un fichier XML (ou autre) à configurer !

Image non disponible

La page d'accueil de TeamCity est pour l'instant vide, mais propose déjà quelques options, dont la création du premier projet !

Image non disponible

Avant de créer un projet, voyons rapidement les pages annexes, en particulier la page d'administration ainsi que celle des options du compte courant.

La page de paramétrage propose le réglage des options générales, du type nom, adresse email, mot de passe, etc.

Image non disponible

On peut aussi régler la notification par mail de façon très fine :

Image non disponible

C'est également ici que l'on retrouve les outils s'interfaçant avec TeamCity, dont un notificateur Windows, un flux RSS ou encore des plugins pour les IDE ItelliJ IDEA, Eclipse ou Visual Studio. Même si nous n'utilisons pas NetBeans, il est regrettable qu'il n'existe pas de plugins TeamCity pour cette plateforme pourtant populaire !

Image non disponible

Dans la page d'administration, on retrouve :

  • la gestion des projets (création, édition, suppression) ;
  • la configuration des SCM (gestionnaires de contrôles de sources) ;
  • la gestion des historiques (combien de temps les données sont conservées par exemple) ;
  • la configuration du serveur ;
  • la gestion des utilisateurs ;
  • la gestion des licences.

précédentsommairesuivant

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur.