Comment utiliser des exécuteurs spécifiques pour booster vos builds

TeamCity réunit de nombreuses fonctionnalités très utiles qui boostent vos builds. Ce tutoriel explore comment utiliser des exécuteurs spécifiques et pourquoi vous voudrez les utiliser.

Qu'est-ce qu'un outil d’exécution de build et quels types d’outils d’exécution sont disponibles dans TeamCity ?

Un outil d’exécution de build est une partie de TeamCity qui permet de l’intégrer avec un outil de build spécifique (Ant, MSBuild, Command Line, etc.). Un outil d’exécution de build fournit des paramètres qui spécifient les tâches de build à exécuter, la version de l'outil de build à utiliser, l'image Docker/Linux à utiliser comme conteneur, etc. Grâce à une configuration de build, un outil d’exécution de build permet de définir les modalités d’exécution d’un build et le rapport de ses résultats. TeamCity propose d’emblée de nombreux outils d’exécution de build, notamment .NET, Maven, Gradle, Docker, Python, Node.js et bien d'autres.

Nous allons ouvrir et modifier une configuration de build. Ici, nous avons une étape de build : une étape de build de ligne de commande. Le script traite les commandes suivantes :

  • cd pour accéder à un répertoire de service de calculateur.
  • Exécute mvn clean package.
  • Charge le fichier .jar dans un compartiment S3 privé.
tutorials-img

Ici, nous allons nous débarrasser de l'étape mvn clean package et utiliser les fonctionnalités propres à Maven de TeamCity pour cela. Nous pouvons simplement supprimer la ligne correspondante dans le script personnalisé et cliquer sur Save :

tutorials-img

Ajout d'une nouvelle étape de build

Ensuite, nous allons ajouter une nouvelle étape de build. TeamCity va suggérer un exécuteur spécifique :

tutorials-img

Quelle que soit la technologie avec laquelle TeamCity doit s'intégrer, vous trouverez un exécuteur spécifique. Par exemple, si vous souhaitez créer des projets .NET, vous pouvez choisir un exécuteur .NET. Si vous souhaitez exécuter des scripts de ligne de commande, vous allez utiliser un exécuteur de ligne de commande. De même, vous utiliseriez un exécuteur Docker pour les étapes propres à Docker, un exécuteur Gradle pour les projets Gradle, etc.

Vous trouverez la liste complète des exécuteurs de build de TeamCity dans notre documentation.

Il s'agit d'un projet Maven, nous allons donc choisir Maven dans la liste déroulante. Ensuite, nous allons remplir une partie des champs que TeamCity propose à cette étape.

tutorials-img

Notre fichier pom.xml est enregistré dans le répertoire de service du calculateur, par conséquent nous allons choisir le dossier correct en cliquant sur l'icône d'arborescence. Dans la mesure où vous bénéficiez d'une vue arborescente claire de l'ensemble des répertoires, vous n'avez pas à saisir le nom du répertoire (ce qui écarte aussi les risques de fautes de frappe). Il vous suffit de sélectionner le répertoire dans la liste.

Vous pouvez exécuter l'étape mvn clean package dans un conteneur Docker en fournissant un nom d'image Docker provenant du hub Docker, par exemple maven:latest. TeamCity récupère cette image, l'utilise pour démarrer de façon transparente un conteneur Docker, y exécute votre commande de destination mvn clean package, puis supprime le conteneur.

tutorials-img

Choix d'un exécuteur de couverture

Pour poursuivre la configuration de l'étape manuelle de build, cliquez sur ce lien :

tutorials-img

TeamCity permet de choisir un exécuteur de couverture spécifique. Par exemple, vous pouvez ajouter les exécuteurs de couverture de code IntelliJ IDEA ou JaCoCo, sans avoir à les coder de façon irréversible dans votre fichier pom.xml.

Nous allons ajouter com.jetbrains.teamcity.* en tant que nom de modèle de paquet. TeamCity va ensuite analyser les paquets dont les noms correspondent à ce modèle pour la couverture du code.

tutorials-img

TeamCity permet également de configurer des options avancées. Par exemple, vous pouvez choisir différentes versions de projet Maven ou sélectionner une version Java spécifique pour exécuter l'ensemble du projet.

tutorials-img

Avec toutes ces options d'interface utilisateur, vous n'avez pas à vous soucier du résultat de votre appel de commande. TeamCity s'en charge pour vous.

Maintenant, le script de ligne de commande s'exécute, ainsi que l'étape Maven qui le suit. Il est souhaitable de réorganiser nos étapes de build pour que mvn clean package s'exécute en premier, puis que la ligne de commande procède à un chargement sur S3.

tutorials-img

Ensuite, cliquez simplement sur Run, et tout devrait fonctionner comme prévu.

Quelles sont les possibilités offertes par l'exécuteur Maven ?

Une fois l'exécution du build terminée, vous pouvez accéder à sa page de présentation. Cette page comporte de nouveaux onglets, tels que Maven Build Info et Code Coverage, ainsi qu'une nouvelle section pour les résultats de Tests et Code Coverage.

tutorials-img

Informations sur la build Maven

La page Maven build info comporte une vue d'ensemble des objectifs que vous avez exécutés, ainsi qu'une mention de la version Maven utilisée à cette fin. Vous verrez également les artefacts produits, tels que le fichier .jar provenant de Maven.

Le rapport affiche également toutes les dépendances propres, ainsi que les versions que Maven a utilisées pour ce build. Cela vous donne une vue d'ensemble des bibliothèques formant votre build. Ces informations sont également utiles pour le débogage.

Vous verrez également tous les plugins Maven effectifs qui ont été activés au cours de ce build.

tutorials-img

Page de vue d'ensemble du test

La page de vue d'ensemble du test, que vous obtenez gratuitement en utilisant l'exécuteur Maven, vous fournit de nombreuses informations utiles. Vous trouverez les informations suivantes dans le rapport :

  • Statut du test (succès, échec, incertain, etc.)
  • Classes de test et méthodes exécutées
  • Durées du test
  • Ordre d'exécution des tests

Chaque test comporte également un historique qui vous donne toutes les informations essentielles. L'historique de test est utile si vous devez investiguer des problèmes du type « Pourquoi ce test a soudainement pris plus de temps ? Est-ce un test incertain ? » entre autres.

Nous verrons en détail les rapports de test dans cette vidéo.

Rapport de couverture de code

Le rapport de couverture du code nous fournit des informations sur les classes et les méthodes utilisées, ainsi que le pourcentage de code couvert par les tests.

Il ne vous reste plus qu'à sélectionner deux options de liste déroulante dans l'exécuteur de couverture de code d'IntelliJ IDEA pour obtenir tous ces rapports dans l'interface utilisateur de TeamCity.

tutorials-img

C'est tout pour le moment ! Regardez les autres tutoriels pour apprendre comment utiliser les fonctionnalités propres à TeamCity, telles que des rapports de test ou de couverture du code.

Joyeux builds !