Jenkins, logiciel d’intégration continue

Jenkis est un « logiciel » utilisé dans le milieu informatique. Il est une solution, parmis d’autres, pour mettre en place le principe « d’intégration continue »

jenkins.pngJenkis est un logiciel écrit en Java qui tourne sur un serveur UNIX. Il faut donc disposer d’un serveur spécifique UNIX où y installer ce dernier.
On le décrit comme un « ordonnanceur de tâches automatisable » : il permet de lancer des actions automatiques lors de la modification du code.

Logo Jenkins >

Utilisation

  1. Le génération automatique des packages du projet
  2. L’intégration continue : à chaque modification déterminée faite, une batterie de test pour vérifier la non régression sera exécutée sur le dernier package
  3. Le déploiement continue : un déploiement automatique pourra être fais pour accélérer le processus de mise en production
  4. Amélioration du code : analyse des erreurs, duplications, conseils d’automatisation, indicateurs de performances
  5. La génération automatique de la documentation du projet

Les prérequis

  • Un système de versionning en place (ex : Git)
  • Un serveur UNIX où s’exécutera Jenkins

De plus, il nécessaire d’écrire les tests que Jenkins devra effectuer : ce dernier, comme indiqué est un ordonnanceur de tâches automatisable

La configuration

jenkins_droitsLe paramétrage de Jenkins est lui même soumis à un système sophistiqué donnant lieu à différents utilisateurs ayant chacun leur droit respectif sur :

  1. La vision (et la création) de projets, réparties en catégories/secteurs
  2. L’ajout de plugin : une interface dédiée répertorie tous les plugins disponibles.
  3. L’ajout/modifications de jobs,
  4. La gestion de chacunes des vues
  5. La gestion des builds : déclenchement à chaque push, selon un script, toutes les x heures… et affichage de leur historique.

Aussi des autorisations sont configurables pour les actions sur les déploiements générés.

Les builds, ou packages

Au sein du projet Jenkins, un fichier build.xml définiera les actions qui seront effectué lors du build du projet.
On y liste un ensemble de commandes avec le fichier à « executer » qui effectuera des opérations sur le code : nettoyage, indentation du code, compression, copie, compilation…

De plus, à la suite du build, Jenkins permet d’effectuer d’autres commandes qui suivront la réalisation : Si build réussi alors déploiement sur un serveur spécifique par exemple, envoie d’un mail, notification sur des réseaux…

Enfin, les builds sont eux-même paramétrables : les commandes peuvent utiliser des données personnalisées.

L’analyse

jenkins_analyse

Une interface permet, , via l’utilitaire SONAR sur mobile par exemple, d’accéder à un ensemble de donnée de performance. On y observe des informations basiques tel que le nombre de ligne de code, de fichier, de fonctions. Plus finement, on accède au code dupliqué au sein du projet, permettant ainsi d’optimiser son code. Enfin on peut facilement accéder aux processus bloquants/critique/majeur analysés

Les tests

Les tests réalisées dépendront de leur écriture et de l’outil utilisé au sein de Jenkins.
Les résultats de ces derniers apparaîtront au sein de Jenkins comme un Code Coverage, et leur exécution sera bien évidemment fonction de la puissance du serveur d’exécution.

Le Code Coverage effectué affichera un pourcentage de performance selon les dossiers, des informations rapides (nombre de ligne, de classes, de méthodes).

Le déploiement continue

Utilisation optionnelle de Jenkins, le déploiement automatique permet par exemple :

  • De maintenir ses environnement à jour en disposant facilement de la dernière version du projet sur différentes plate-forme : test, validation, pré-production…
  • Automatiser les étapes systématique (copie de fichier, gestion du cache, paramétrages rébarbatif…) et éviter les erreurs humaine.
  • Conserver le savoir faire lié aux déploiements cas de départ d’un employé
  • Faire évoluer les étapes du déploiement facilement en fonction des besoin et conserver un historique de ces changement.

L’utilisation de Jenkins permet lors du travail en équipe d’uniformiser l’écriture du code entre les équipiers, d’obtenir des informations utiles sur le code (ex : perfs), d’éviter la régression, faciliter la documentation et accélérer les processus (Génération build > tests > déploiements).

Sources :

Laisser un commentaire

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