in

Jenkins : présentation de cet outil d’intégration continue

Jenkins est l’outil open source le plus populaire sur le marché actuellement. Il facilite la configuration d’intégration continue et de livraison continue de toutes sortes de combinaisons de langages et de dépôt du code source.

Dans presque toutes les discussions sur l’intégration continue open source ou les outils de livraison continue (CI/CD), Jenkins est inévitablement évoqué. L’automatisation est l’une des pratiques clés qui permettent aux équipes DevOps de fournir des solutions technologiques « plus rapides, meilleures et moins chères ». Ainsi, cet outil CI/CD est devenu indispensable pour les aider à atteindre ces objectifs. 

Jenkins : détour sur son histoire 

Jenkins existe depuis un certain temps. Le projet, initialement appelé Hudson, a été développé en 2004 par Kohsuke Kawaguchi, alors qu’il travaillait chez Sun Microsystems, et a été publié en 2005. Après l’acquisition de Sun par Oracle, l’outil a été fourchu pour rester open source et a été nommé Jenkins en 2011.

pcloud

Même si Kohsuke l’a initialement développé pour faciliter l’intégration continue des applications Java, cette application a évolué. Elle orchestre l’ensemble du pipeline de livraison continue pour les langages et technologies les plus populaires utilisés par les développeurs du monde entier. Il existe des centaines de plugins disponibles qui étendent Jenkins afin de fournir la flexibilité nécessaire pour automatiser chaque aspect du pipeline de livraison de logiciels.

Automatisation

Jenkins est, actuellement, l’outil star de l’intégration continue open source avec 1600 plugins. Il s’occupe de l’automatisation de divers travaux de développement. 

A l’origine, la livraison et l’intégration continue du code écrit Java font partie des soucis que Kawaguchi essayaiet de traiter. Désormais ces processus peuvent être automatisés via cet outil open source. Cinq domaines sont couverts par ces plugins : plateformes, gestion des builds ou des codes sources, interface utilisateur et administration.

Jenkins : comment fonctionne-t-il ?

Jenkins est distribué sous forme d’archive WAR et de packages d’installation en tant que package Homebrew, Docker et code source, pour les systèmes d’exploitation. Le code source est particulièrement Java, avec certaines données Ruby,  Groovy et Antlr.

Vous avez la possibilité de lancer Jenkins WAR de manière autonome ou l’utiliser dans un serveur en tant que servlet comme Tomcat. Il produit une interface pour utilisateur et approuve les appels à son API REST.

Lorsqu’on l’exécute, il faut créer un compte administratif et un mot de passe aléatoire. Ce dernier peut être collé dans la page initiale pour débloquer l’installation.

Les plugins

Jenkins permet d’approuver la liste de plugins déjà existants ou de déterminer votre lot initial, et ce une fois qu’il est installé. Ensuite, cliquez sur Installer pour que Jenkins les ajoute.

L’écran principal affiche l’état de l’exécuteur ainsi que la file d’attente de builds actuelle. Il propose des liens afin de :

  • élaborer des éléments,
  • gérer les informations d’identification, Jenkins  et les utilisateurs
  • afficher les historiques de construction,  
  • examiner vos vues personnalisées 

Il y a aussi environ 18 manipulations que vous pouvez faire via la page « Gérer Jenkins ». Il offre également la possibilité d’ouvrir une interface de commande. Cependant, il est indispensable de vérifier les pipelines. Ces dernières represéntent les flux des tâches déterminés par des scripts.

Les pipelines

A partir du moment où vous avez configuré Jenkins, vous pouvez produire tout type de projets que seul cet outil peut élaborer pour vous. Bien que l’interface user vous serve pour réaliser des scripts, réaliser un script de pipeline, appelé Jenkinsfile est aussi  une meilleure pratique pour l’utiliser. Ensuite, vous devez l’enregistrer dans votre dépôt.

Les bases de dérivation de Pipeline peuvent être des dépôts Subversion ou  git  ou même GitHub. Pour d’autres types, ajoutez simplement les plugins appropriés et ensuite redémarrez Jenkins. 

Syntaxe pour définir un fichier Jenkins

Les pipelines peuvent être scriptés ou déclaratifs. Le plus simple est le pipeline déclaratif utilisant une syntaxe Groovy. Pour le mettre en oeuvre, il faut démarrer avec #!groovy et bien pointer dans la bonne direction l’éditeur de code.

C’est par un bloc de pipeline que le mode déclaratif commence. Il indique un agent et des étapes comprenant des phases exécutables.

En résumé, le bloc externe obligatoire est représenté par le pipeline. L’agent définit l’endroit où vous voulez faire fonctionner le pipeline et où vous souhaitez l’exécuter. 

Quant aux étapes, elles se composent d’une séquence d’une ou plusieurs directives de stades. Ce sont ces derniers qui font le réel travail. 

Blue Ocean

Si vous préférez la dernière et la meilleure interface utilisateur Jenkins, vous avez la possibilité de choisir le plugin Blue Ocean. Cette interface offre une expérience utilisateur graphique. Cette dernière peut être ajoutée à une installation Jenkins existante. Elle peut également exécuter un conteneur Jenkins/Blue Ocean Docker. 

Avec Blue Ocean installé, le menu principal Jenkins contient une icône complémentaire.

Ce plugin se trouve sur le serveur Jenkins dans le dossier/blue. La création de pipelines dans Blue Ocean semble plus graphique que dans les Jenkins ordinaires.

Jenkins Docker

Comme mentionné précédemment, Jenkins est livré sous forme d’image Docker. Il n’y a pas beaucoup plus à faire. Dès que vous avez choisi le type de SCM, vous produisez une URL ainsi que des informations d’identification. Puis, à partir d’un seul dépôt, vous créez un pipeline ou vous scannez tous les dépôts de l’organisation dont chacun va recevoir un pipeline.

Jenkins : comment favorise-t-il la digitalisation des entreprises ?

Avec Jenkins, les entreprises peuvent accélérer le processus de développement logiciel grâce à l’automatisation. Cet outil CI/CD open source intègre des processus de cycle de vie de développement de toutes sortes. Y compris la construction, le document, le test, le package, l’étape, le déploiement, l’analyse statique et bien plus encore.

Plugin de génération de tâches

Le maintien des tâches de projet dans une organisation en croissance est un peu difficile, d’autant plus que les développeurs travaillent souvent sur différentes branches et versions. 

Même si vous êtes prêt à laisser les développeurs créer eux-mêmes des nouveaux Job, vous ne pouvez pas savoir s’ils seront en mesure de répondre aux normes de l’entreprise. C’est un gros dilemme. 

Ainsi donc, ce plugin vous permet de définir des modèles que vos développeurs peuvent utiliser pour réaliser des nouvelles tâches de build. Vous pouvez désactiver l’accès à la configuration du modèle à l’aide du plugin d’autorisation basé sur les rôles. 

Générateur de requêtes d’extraction GitLab / GitHub

Vous pouvez utiliser cette technologie pour automatiser le processus de révision de code dans GitLab / GitHub à un niveau plus élevé que d’habitude. Pour chaque “pull request”, vous pouvez vous attendre à ce que ce plugin exécute  la compilation et génère les résultats tout en collectant une analyse statique importante. Ce plugin en dit long sur le code qui doit être fusionné. Il est également possible de définir la fusion automatique dans certaines circonstances en utilisant ce plugin. 

Jenkins et l’automatisation des tests

Voici quelques-unes des principales caractéristiques des tests automatisés de Jenkins. Ils facilitent grandement la vie d’un testeur d’automatisation.

Jenkins programme des tests à exécuter à un moment précis

Les tests automatisés via Jenkins possèdent une excellente fonctionnalité. Ils permettent aux testeurs de programmer des cas d’automatisation et de les exécuter selon leur convenance. Cela leur offre la possibilité de gagner du temps et de réduire considérablement leurs efforts.

Jenkins affiche les tendances des résultats des tests

Grâce à Jenkins, l’utilisateur peut clairement voir comment les tests d’automatisation se sont déroulés au fil du temps. Les échecs des tests des versions précédentes apparaissent également en rouge dans le graphique des tendances des résultats des tests. Cela permet de prendre les mesures appropriées.

Jenkins offre un résumé des résultats des tests

L’une des tâches les plus importantes d’un testeur est de faire un rapport sur les résultats des tests, non seulement les échecs des tests, mais aussi le nombre de tests exécutés, le temps qu’il a fallu pour les exécuter, etc. Jenkins fournit un résumé des résultats des tests, organisé par paquets de haut niveau plutôt que par modules pour simplifier le processus.

Jenkins : comment l’intégration/livraison continue aide-t-elle une équipe de développement?

Beaucoup de gens parlent de CI, car il est considéré comme une bonne pratique de faire vérifier automatiquement tout le code à chaque validation et exécuter régulièrement des tests.

Ce processus assure que les contributions de chaque développeur fonctionnent bien ensemble. La détection précoce des problèmes facilite et accélère la résolution des bugs. Comme vous pouvez probablement le deviner, la mise en œuvre de CI / CD entraîne un changement culturel dans une équipe. 

Aller de l’avant avec Jenkins pour DevOps

Comme expliqué ci-dessous, CI a été créé pour éviter de perdre de temps à essayer de résoudre manuellement les segments conflictuels du nouveau code, de déclencher des builds ou d’exécuter des tests. Au lieu de cela, il encourage l’ajout de petits changements incrémentiels dans le code afin de ne pas vous retrouver avec d’énormes bogues complexes à corriger. Cela accélère le cycle de construction, rationalisant potentiellement le déploiement et la production.

Et il est utile de se rappeler que la production est l’endroit où votre entreprise gagne réellement de l’argent.

De plus, il est intéressant de noter que pour une équipe distante multi-développeurs, CI est extrêmement utile à mettre en œuvre. Il vous rassemble tous et combine en permanence votre travail afin que vous soyez tous sur la même page, quel que soit l’emplacement géographique.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *