Published On: 7 novembre 20223,6 min read

Comment fonctionne l’outil Jenkins ?

Comprendre le fonctionnement de l’outil Jenkins

L’intégration continue est une pratique de développement qui requiert de la part des développeurs d’intégrer du code dans un référentiel partagé à intervalles réguliers.

Grâce à ce code, le concept est capable de détecter au plus tôt les problèmes d’intégration en générant régulièrement la solution (à chaque commit) suivi du lancement d’une série de tests d’intégration.

Jenkins fait partie des outils à dispositions pour appliquer ce concept. Il s’agit d’une application Open Source (gratuite) qui permet de configurer un logiciel pour faciliter les tests et d’assurer l’intégration et la livraison en continu des projets, et ce quelle que soit la plateforme sur laquelle vous travaillez de par son système de plugins.

Doté d’un système de plugin flexible, Jenkins peut être installé aussi bien sur une plateforme Windows que linux, MacOs, dans un docker ou Kubernetes.

Pour installer Jenkins, les configurations minimales et recommandées (petite équipe) pour le serveur sont très légères :

L’outil fonctionne parfaitement avec un RAM de 256 Mo à 4Go et un espace disque de 1 à plus de 50 Go. Pour le Java, vous pouvez l’installer sur un Java 8 ou 11. Bien que Jenkins soit nativement auto hébergée par son conteneur Jetty intégré, vous avez toute la latitude pour l’héberger dans tout autre conteneur de servlets de votre choix comme Tomcat, GlassFish, JBoss etc

Une fois installé, Jenkins sera accessible via un navigateur web sur le port 80 (par défaut) de la machine l’hébergeant.

Les PipeLines Jenkins

La mise en œuvre du workflow d’intégration continue passera par la création d’un Pipeline Jenkins.

Il s’agira d’une suite de plugins prenant en charge la mise en œuvre et l’intégration de pipelines de livraison continue dans Jenkins.

Un pipeline de livraison continue sera alors une expression automatisée du processus permettant de faire passer le logiciel du contrôle de version jusqu’à vos utilisateurs.

Chaque modification apportée à votre logiciel (engagée dans le contrôle de code source) passera par un processus plus ou moins complexe avant d’être publiée.

L’usage de Jenkins permet d’obtenir un logiciel fiable et reproductible, ainsi que de faire progresser le logiciel construit (build) à travers plusieurs étapes de test (facultatif mais fortement recommandé) et de déploiement. Autrement dit, il implique plusieurs tests de sécurité sur le serveur et sa configuration afin d’assurer la progression des builds.

Les PipeLines Jenkins seront codés dans des Jenkinsfile dans un format Groovy simple et compréhensible. Deux syntaxes sont actuellement supportées, la syntaxe Scriptée et la syntaxe Déclarative (plus récente et accessible mais actuellement encore pénalisée par un problème de limitation en taille).

Les plugins Jenkins

La plus grande force de Jenkins est sa capacité à s’adapter à quasiment tous les outils de développement, de test ou de déploiement.

Avec plus de 1000 plugins disponibles il est presque impossible de ne pas trouver ce dont on a besoin. Et si cela devait arriver rien ne nous empêche de coder ce plugin et de le partager avec la communauté.

L’installation des plugins se fera simplement depuis l’interface d’administration de Jenkins en filtrant parmi ceux proposés par la communauté, ou en les important depuis une url ou un emplacement local (format .hpi).

Il sera aussi possible de les installer via ligne de commande en utilisant Jenkins CLI.

CloudNetCare propose d’ailleurs un plugin que vous trouverez sur notre site https://www.cloudnetcare.fr/interoperabilite/jenkins/ qui vous permettra de lancer les tests de votre choix à l’issue d’un build ou depuis un projet libre.

Il y a énormément à dire sur Jenkins, les docs et tutos ne manquent d’ailleurs pas sur internet ce qui est un bon indicateur de sa popularité. Des alternatives existent (TeamCity, GitLab CI, Bitrise …), les fonctionnalités qu’elles proposent seront alors à étudier afin de faire le choix le plus pertinent selon le contexte cible.

Testez plus vite
et mieux avec les outils
CloudNetCare

UX Functional testing

Plateforme SaaS de tests de montée en charge

UX Functional testing
UX Functional testing

Testez plus vite et mieux avec
les outils
CloudNetCare

UX Functional testing

Plateforme SaaS de tests de montée en charge

UX Functional testing
UX Functional testing