Jenkins : Tutoriel pour l’outil d’intégration continue
Si vous souhaitez que votre équipe utilise la méthode agile d’intégration continue (IC), il est recommandé d'utiliser un outil IC simple mais puissant. Jenkins est cet outil : particulièrement par le biais de plugins, ce logiciel open source vous offre de nombreuses possibilités pour rendre le processus d’intégration continue plus efficace.
Jenkins est basé sur Java et fonctionne donc sur toutes les plateformes imaginables. Le logiciel étant livré avec Winston, un middleware de servlet, aucun autre serveur, tel que Tomcat, n'est nécessaire. Pour vous aider à bien travailler avec Jenkins, laissez-nous d'abord vous expliquer comment installer et configurer correctement ce programme. Ensuite, nous vous appuierons sur un exemple pour vous montrer comment faire ses premiers pas avec un projet.
Installation du logiciel
Jenkins est disponible dans de nombreuses versions : tout d'abord, vous pouvez opter pour une version hebdomadaire, mise à jour par Jenkins toutes les semaines. Vous pouvez aussi opter pour la version Long Term Support (LTS) : une version stable est publiée tous les trois mois. Dans les deux cas, différentes versions s'offrent encore à vous : outre les packages d'installation pour les systèmes d'exploitation habituels (Windows, macOS, Ubuntu / Debian), une version pour Docker et une archive Web (.war) sont également disponibles.
Dans notre exemple, nous utilisons l'installateur Windows dans la version 2.121.1 (LTS) sous Windows 7. Si vous utilisez une version différente ou un système d'exploitation différent, le processus d'installation peut se présenter sous une autre forme. Jenkins étant basé sur Java, vous devez avoir installé une version récente de la technologie Java.
Le programme d'installation Windows vous guidera tout au long de l'installation. Il vous suffit de spécifier le répertoire d'installation souhaité et de démarrer l'installation.
Configuration de Jenkins
L'installation ne devrait prendre que quelques secondes. Immédiatement après, le programme ouvre localhost:8080 dans votre navigateur par défaut. Cela donne accès à une interface Web, que vous pouvez utiliser pour configurer Jenkins. Mais vous devez d'abord prendre une mesure de sécurité : Jenkins a généré un mot de passe aléatoire pour vous. Celui-ci se trouve dans le répertoire Jenkins, dans le dossier Secrets et enfin dans le fichier initialAdminPassword. Ce fichier peut être ouvert avec n'importe quel éditeur de texte. Copiez la chaîne de caractères et collez-la dans la zone ad hoc de l'interface Web.
Maintenant, il est temps de configurer Jenkins. L'assistant de configuration vous demandera si vous souhaitez choisir les plugins à installer ou si vous préférez utiliser le paramétrage par défaut intégrant déjà toutes les améliorations majeures. Si vous utilisez Jenkins pour la première fois, ce choix par défaut vous conviendra certainement. Et ne vous inquiétez pas : des plugins supplémentaires peuvent être facilement installés plus tard.
Créez ensuite un premier utilisateur. Si vous travaillez seul sur votre projet, vous pouvez ignorer cette étape et utiliser simplement Jenkins en tant qu'administrateur. Dans les paramètres de Jenkins, vous pourrez toujours créer ultérieurement de nouveaux utilisateurs avec des droits différents. Lors de la dernière étape de la configuration, vous avez encore la possibilité de spécifier une URL Jenkins. Le champ correspondant comporte par défaut localhost:8080. Si vous avez installé Jenkins sur un serveur (ce qui devrait être le cas dans un environnement de travail professionnel), indiquez ici le bon chemin d'accès au répertoire Jenkins. Enregistrez les données saisies et terminez la configuration.
Vous pourrez également définir des paramètres supplémentaires plus tard, dans le menu de configuration de Jenkins.
Jenkins - Introduction à la méthode de travail
Vous démarrez Jenkins avec un environnement de travail complètement vide. Pour démarrer un nouveau projet d’intégration continue, vous devez créer un nouveau job. Pour ce faire, utilisez l’icône visible au milieu de la fenêtre (« create new jobs ») ou l’option de menu « New Item », que vous trouverez à gauche.
Ensuite, il est nécessaire de donner un nom à votre projet et de choisir ce que vous voulez atteindre :
- Freestyle project : Jenkins associe la gestion des versions à un système de build.
- Pipeline : créez un pipeline entre plusieurs agents de build.
- Projet multi-configuration : Choisissez cette option si vous avez un projet qui nécessite une variété de paramètres, par exemple parce que vous utilisez plusieurs environnements de test.
- Folder : un dossier est un conteneur dans lequel vous pouvez stocker des objets imbriqués.
- GitHub Organization : cette option fait une recherche dans tous les référentiels d'un compte sur GitHub.
- Multibranch Pipeline : vous permet de créer directement plusieurs pipelines.
Jenkins se concentre principalement sur les projets freestyle, c'est pourquoi nous en créerons un dans notre exemple.
À la page suivante, vous avez de nombreuses options de paramétrage. Vous pouvez configurer votre projet selon six catégories. Supposons que vous écriviez un programme en Java et que vous souhaitiez utiliser l'intégration continue. Commençons par la gestion du code source. Le programme donné en exemple se trouve dans un référentiel Git sur votre machine (il est également possible de connecter Jenkins à GitHub, par exemple). Veuillez indiquer le bon répertoire sous « Git ». Vous pouvez également travailler avec un dépôt Subversion.
À l'étape suivante, sélectionnez le Build Trigger. Cela déterminera dans quelles situations Jenkins devra effectuer un build. Ceci peut par exemple se faire par l’intermédiaire d’un script spécial d'un autre programme, à la suite d’un autre build, ou périodiquement à des intervalles de temps spécifiques. Vous pouvez également déclencher un build manuellement lorsque vous le souhaitez - ce que nous ferons dans notre exemple.
L'environnement de build, que Jenkins vous laissera configurer par la suite, comprend d'autres options liées aux builds : une interruption, par exemple, si le processus se bloque ? Ou l'affichage d'un horodatage (timestamp) dans la console ? Aucune option n'est obligatoire.
Enfin, il s’agit du Build lui-même : ici, vous déterminez comment votre programme doit être construit. Comme vous avez déjà intégré les connexions à Ant et Gradle via la sélection standard de plugins, vous pouvez choisir l'un de ces programmes. Il est toutefois également possible d'utiliser des commandes simples de type ligne de commande. Sélectionnez l'option pour les commandes par batch et laissez votre programme se compiler :
javac MyProgram.java
java MyProgram
Après cela, Jenkins vous donne encore la possibilité d’exécuter des actions postérieures au build. Les tests sont particulièrement importants ici : connectez Jenkins à JUnit avec l’option « Publish JUnit test result report » pour intégrer les résultats du framework de test Java. Par ailleurs : Avec des plugins supplémentaires, vous pouvez également connecter Jenkins à d'autres environnements de test. Vous pouvez même ainsi laisser Jenkins exécuter des tests automatiques. Vous pouvez également vous informer et informer les autres sur le statut du build par courrier électronique. Pour finir, sauvegardez les informations et créez votre premier job.
Si vous souhaitez installer des plugins, le serveur Jenkins doit être redémarré. Vous pouvez le faire en vous déconnectant puis en ajoutant safeRestart à l'URL dans la barre d'adresse du navigateur (par exemple, localhost:8080/safeRestart). Si vous vous reconnectez, vous pouvez confirmer que vous souhaitez redémarrer.
Chaque projet a sa propre sous-page dans Jenkins. Ici, vous pouvez déclencher un build, modifier à nouveau les paramètres et consulter le statut. Sur la page « Statut », Jenkins vous indique également l'historique des builds. Le dernier build a-t-il réussi ou non ? Jenkins indique par des points bleus que le build a réussi. Le rouge représente une erreur qui doit être résolue immédiatement, conformément aux principes de l'intégration continue. À cet endroit, vous verrez également quand un build est en cours. En cliquant sur le numéro de build, vous accédez à une page de détails où vous pouvez également afficher le contenu de la console.
Dans le tableau de bord de Jenkins, vous pouvez voir tous les projets sur lesquels vous travaillez. Ici aussi, le programme matérialise l'état du projet par une couleur. Vous obtenez également des informations sur la Stabilité du build sous la forme d'un bulletin météo. Il s’agit d’une statistique sur la stabilité moyenne des builds du projet. Si plus de 80 % de vos builds réussissent, vous verrez un soleil. En dessous de cette valeur, la météo symbolique se dégrade.
Jenkins vous offre de nombreuses autres façons d’adapter le programme à vos conditions de travail, afin de simplifier votre processus d’intégration continue. Vous trouverez, en particulier dans les nombreux plugins, une solution adaptée à la plupart des situations.