Si vous souhaitez que votre équipe utilise la méthode agile d’in­té­gra­tion continue (IC), il est re­com­mandé d’utiliser un outil IC simple mais puissant. Jenkins est cet outil : par­ti­cu­liè­re­ment par le biais de plugins, ce logiciel open source vous offre de nom­breuses pos­si­bi­li­tés pour rendre le processus d’in­té­gra­tion continue plus efficace.

Jenkins est basé sur Java et fonc­tionne donc sur toutes les pla­te­formes ima­gi­nables. Le logiciel étant livré avec Winston, un midd­le­ware de servlet, aucun autre serveur, tel que Tomcat, n’est né­ces­saire. Pour vous aider à bien tra­vail­ler avec Jenkins, laissez-nous d’abord vous expliquer comment installer et con­fi­gu­rer cor­rec­te­ment ce programme. Ensuite, nous vous ap­puie­rons sur un exemple pour vous montrer comment faire ses premiers pas avec un projet.

Ins­tal­la­tion du logiciel

Jenkins est dis­po­nible dans de nom­breuses versions : tout d’abord, vous pouvez opter pour une version heb­do­ma­daire, 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, dif­fé­rentes versions s’offrent encore à vous : outre les packages d’ins­tal­la­tion pour les systèmes d’ex­ploi­ta­tion habituels (Windows, macOS, Ubuntu / Debian), une version pour Docker et une archive Web (.war) sont également dis­po­nibles.

Image: Vue d’ensemble de différentes versions d’installation de Jenkins
Vue d’ensemble de dif­fé­rentes versions d'ins­tal­la­tion de Jenkins
Note

Dans notre exemple, nous utilisons l’ins­tal­la­teur Windows dans la version 2.121.1 (LTS) sous Windows 7. Si vous utilisez une version dif­fé­rente ou un système d’ex­ploi­ta­tion différent, le processus d’ins­tal­la­tion peut se présenter sous une autre forme. Jenkins étant basé sur Java, vous devez avoir installé une version récente de la tech­no­lo­gie Java.

Le programme d’ins­tal­la­tion Windows vous guidera tout au long de l’ins­tal­la­tion. Il vous suffit de spécifier le ré­per­toire d’ins­tal­la­tion souhaité et de démarrer l’ins­tal­la­tion.

Con­fi­gu­ra­tion de Jenkins

L’ins­tal­la­tion ne devrait prendre que quelques secondes. Im­mé­dia­te­ment après, le programme ouvre localhost:8080 dans votre na­vi­ga­teur par défaut. Cela donne accès à une interface Web, que vous pouvez utiliser pour con­fi­gu­rer 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é­per­toire Jenkins, dans le dossier Secrets et enfin dans le fichier ini­tia­lAd­min­Pass­word. Ce fichier peut être ouvert avec n’importe quel éditeur de texte. Copiez la chaîne de ca­rac­tères et collez-la dans la zone ad hoc de l’interface Web.

Image: Demande de déverrouillage de l’installation Jenkins.
Demande de dé­ver­rouil­lage de l'ins­tal­la­tion Jenkins.
Image: Exemple de code administrateur pour Jenkins.
Exemple de code ad­mi­nis­tra­teur pour Jenkins.

Main­te­nant, il est temps de con­fi­gu­rer Jenkins. L’assistant de con­fi­gu­ra­tion vous demandera si vous souhaitez choisir les plugins à installer ou si vous préférez utiliser le pa­ra­mé­trage par défaut intégrant déjà toutes les amé­lio­ra­tions majeures. Si vous utilisez Jenkins pour la première fois, ce choix par défaut vous con­vien­dra cer­tai­ne­ment. Et ne vous inquiétez pas : des plugins sup­plé­men­taires peuvent être fa­ci­le­ment installés plus tard.

Image: Installation des plugins standards dans Jenkins
Ins­tal­la­tion des plugins standards dans Jenkins

Créez ensuite un premier uti­li­sa­teur. Si vous tra­vail­lez seul sur votre projet, vous pouvez ignorer cette étape et utiliser sim­ple­ment Jenkins en tant qu’ad­mi­nis­tra­teur. Dans les pa­ra­mètres de Jenkins, vous pourrez toujours créer ul­té­rieu­re­ment de nouveaux uti­li­sa­teurs avec des droits dif­fé­rents. Lors de la dernière étape de la con­fi­gu­ra­tion, vous avez encore la pos­si­bi­lité de spécifier une URL Jenkins. Le champ cor­res­pon­dant comporte par défaut localhost:8080. Si vous avez installé Jenkins sur un serveur (ce qui devrait être le cas dans un en­vi­ron­ne­ment de travail pro­fes­sion­nel), indiquez ici le bon chemin d’accès au ré­per­toire Jenkins. En­re­gis­trez les données saisies et terminez la con­fi­gu­ra­tion.

Conseil

Vous pourrez également définir des pa­ra­mètres sup­plé­men­taires plus tard, dans le menu de con­fi­gu­ra­tion de Jenkins.

Jenkins - In­tro­duc­tion à la méthode de travail

Vous démarrez Jenkins avec un en­vi­ron­ne­ment de travail com­plè­te­ment vide. Pour démarrer un nouveau projet d’in­té­gra­tion 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.

Image: interface Web Jenkins
interface Web Jenkins

Ensuite, il est né­ces­saire 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-con­fi­gu­ra­tion : Choi­sis­sez cette option si vous avez un projet qui nécessite une variété de pa­ra­mètres, par exemple parce que vous utilisez plusieurs en­vi­ron­ne­ments de test.
  • Folder : un dossier est un conteneur dans lequel vous pouvez stocker des objets imbriqués.
  • GitHub Or­ga­ni­za­tion : cette option fait une recherche dans tous les ré­fé­ren­tiels d’un compte sur GitHub.
  • Mul­ti­branch Pipeline : vous permet de créer di­rec­te­ment plusieurs pipelines.

Jenkins se concentre prin­ci­pa­le­ment sur les projets freestyle, c’est pourquoi nous en créerons un dans notre exemple.

Image: Options de paramétrage d’un projet dans Jenkins
Options de pa­ra­mé­trage d'un projet dans Jenkins

À la page suivante, vous avez de nom­breuses options de pa­ra­mé­trage. Vous pouvez con­fi­gu­rer votre projet selon six ca­té­go­ries. Supposons que vous écriviez un programme en Java et que vous sou­hai­tiez utiliser l’in­té­gra­tion continue. Com­men­çons par la gestion du code source. Le programme donné en exemple se trouve dans un ré­fé­ren­tiel Git sur votre machine (il est également possible de connecter Jenkins à GitHub, par exemple). Veuillez indiquer le bon ré­per­toire sous « Git ». Vous pouvez également tra­vail­ler avec un dépôt Sub­ver­sion.

À l’étape suivante, sé­lec­tion­nez le Build Trigger. Cela dé­ter­mi­nera dans quelles si­tua­tions Jenkins devra effectuer un build. Ceci peut par exemple se faire par l’in­ter­mé­diaire d’un script spécial d’un autre programme, à la suite d’un autre build, ou pé­rio­di­que­ment à des in­ter­valles de temps spé­ci­fiques. Vous pouvez également dé­clen­cher un build ma­nuel­le­ment lorsque vous le souhaitez - ce que nous ferons dans notre exemple.

L’en­vi­ron­ne­ment de build, que Jenkins vous laissera con­fi­gu­rer par la suite, comprend d’autres options liées aux builds : une in­ter­rup­tion, par exemple, si le processus se bloque ? Ou l’affichage d’un ho­ro­da­tage (timestamp) dans la console ? Aucune option n’est obli­ga­toire.

Enfin, il s’agit du Build lui-même : ici, vous dé­ter­mi­nez comment votre programme doit être construit. Comme vous avez déjà intégré les con­nexions à Ant et Gradle via la sélection standard de plugins, vous pouvez choisir l’un de ces pro­grammes. Il est toutefois également possible d’utiliser des commandes simples de type ligne de commande. Sé­lec­tion­nez l’option pour les commandes par batch et laissez votre programme se compiler :

javac MyProgram.java
java MyProgram
Image: Options de paramétrage d’un projet dans Jenkins
Options de pa­ra­mé­trage d'un projet dans Jenkins

Après cela, Jenkins vous donne encore la pos­si­bi­lité d’exécuter des actions pos­té­rieures au build. Les tests sont par­ti­cu­liè­re­ment im­por­tants 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 sup­plé­men­taires, vous pouvez également connecter Jenkins à d’autres en­vi­ron­ne­ments de test. Vous pouvez même ainsi laisser Jenkins exécuter des tests au­to­ma­tiques. Vous pouvez également vous informer et informer les autres sur le statut du build par courrier élec­tro­nique. Pour finir, sau­ve­gar­dez les in­for­ma­tions et créez votre premier job.

Conseil

Si vous souhaitez installer des plugins, le serveur Jenkins doit être redémarré. Vous pouvez le faire en vous dé­con­nec­tant puis en ajoutant sa­fe­Res­tart à l’URL dans la barre d’adresse du na­vi­ga­teur (par exemple, localhost:8080/sa­fe­Res­tart). Si vous vous re­con­nec­tez, vous pouvez confirmer que vous souhaitez re­dé­mar­rer.

Chaque projet a sa propre sous-page dans Jenkins. Ici, vous pouvez dé­clen­cher un build, modifier à nouveau les pa­ra­mètres et consulter le statut. Sur la page « Statut », Jenkins vous indique également l’his­to­rique 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 re­pré­sente une erreur qui doit être résolue im­mé­dia­te­ment, con­for­mé­ment aux principes de l’in­té­gra­tion 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.

Image: Page d’état d’un projet dans Jenkins
Page d'état d'un projet dans Jenkins

Dans le tableau de bord de Jenkins, vous pouvez voir tous les projets sur lesquels vous tra­vail­lez. Ici aussi, le programme ma­té­ria­lise l’état du projet par une couleur. Vous obtenez également des in­for­ma­tions sur la Stabilité du build sous la forme d’un bulletin météo. Il s’agit d’une sta­tis­tique sur la stabilité moyenne des builds du projet. Si plus de 80 % de vos builds réus­sis­sent, vous verrez un soleil. En dessous de cette valeur, la météo sym­bo­lique se dégrade.

Image: Tableau de bord de Jenkins
Tableau de bord de Jenkins
V568cAbz2ls.jpg Pour afficher cette vidéo, des cookies de tiers sont né­ces­saires. Vous pouvez consulter et modifier vos pa­ra­mètres de cookies ici.
Note

Jenkins vous offre de nom­breuses autres façons d’adapter le programme à vos con­di­tions de travail, afin de sim­pli­fier votre processus d’in­té­gra­tion continue. Vous trouverez, en par­ti­cu­lier dans les nombreux plugins, une solution adaptée à la plupart des si­tua­tions.

Aller au menu principal