L'outil

Les caractéristiques d'un outil

Un outil d'intégration continue se compose de 4 modules principaux qui sont :

Un gestionnaire de code source

Un gestionnaire de code source dit "Source Code Manager" est un outil qui permet de centraliser du code sur un dépot commun dit "Repository". Il en existe plusieurs types tels que CVS, SVN, Git, Mercurial... C'est à partir de cet outil que le développeur va pouvoir récupérer le code de l'équipe mais aussi de publier le sien. Par la suite, l'outil d'intégration continue va récupérer l'ensemble du code publié pour l'exécuter sur sa plateforme grâce à un gestionnaire de builds.

SVNGIT

Un gestionnaire de builds

Un gestionnaire de build est un outil qui permet d'éxecuter un script qui contient une suite d'objectifs souvent appelés cibles ou "target". Chaque target a un rôle bien particulier par rapport au code qu'il accompagne. Certain target prépare l'environnement de compilation, d'autre le compile ou encore le nettoie. On peut aussi générer la documentation à partir des commentaires du code. Les outils les plus répandus sont ceux de la fondation Apache tels que : ANT, MAVEN ou IVY.

ANTMaven

Un gestionnaire de tests

Un outil de gestion de tests est généralement un framework qui s'appuie sur le type de langage avec lequel le code a été conçu. Le principe étant de jouer des scénarios de tests avec l'utilisation de jeux de données. Ces données peuvent varier selon le test voulu. Il peux avoir des cas de tests passant ou non passant. On programme à l'avance le résultat attendu pour chaque test en fonction du jeu de données. Si le résultat obtenu diffère de celui attendu, le build signalera des erreurs à la fin de son exécution.

Un gestionnaire de logs

La gestion de logs est un élément tout aussi important que les autres. Il permet de stocker les informations et les traces produites par l'exécution des jobs. Toutes ces informations peuvent servir ensuite pour les chefs de projet, les équipes mais aussi pour comprendre certain bugs découverts. On les couple souvent à un bug tracker pour le suivi de bugs. Le gestionnaire de logs peut aussi se charger de transmettre par mail le résultat de chaque build à des utilisateurs prédéfinis dans le job.

La notion de Job

Un job représente la configuration d'une tâche qui va être lancée par l'outil. Cette tâche consiste à exécuter l'ensemble des modules décris ci-dessus. Elle correspond à un processus d'intégration et peut faire intervenir des dépendances entre projet ou/et des pré-requis pour la construction d'un build. Le job contient l'adresse du code source mis à disposition pour le build. Sa caractéristique est qu'un job est une directive à suivre et son produit est un build. C'est à dire que si on exécute 10 fois ce job, il produira 10 builds avec 10 rapports. Un build étant une instance unique d'un job.

Quelques outils

la suite...