Module Intgration Continue Premiers pas Jenkins Historique En

  • Slides: 23
Download presentation
Module Intégration Continue Premiers pas Jenkins

Module Intégration Continue Premiers pas Jenkins

Historique • En 2004, apparition d’Hudson, solution opensource d’intégration continue développée par Sun Micro.

Historique • En 2004, apparition d’Hudson, solution opensource d’intégration continue développée par Sun Micro. Systems • Suite à des problèmes d’utilisation du nom Hudson par Oracle, en novembre 2010, proposition de renommer le projet en Jenkins • En février 2011, Oracle décide de continuer à développer Hudson. Jenkins est considéré comme un fork d’Hudson • Aujourd’hui, Jenkins est le seul survivant !

Qu’est ce que Jenkins ? • Solution Open. Source CI/CD écrite en Java et

Qu’est ce que Jenkins ? • Solution Open. Source CI/CD écrite en Java et permettant : § § D’automatiser les build et les tests par configuration ou par script De monitorer les phases de construction des projets De construire dans des conteneurs docker ou sur des instances distantes (master / salve) De pouvoir obtenir facilement les binaires dernières versions stables • Solution non spécifique à des projets Java. Possibilité d’utiliser Jenkins avec de nombreux langages (javascript, php, . net, c/c++, swift…)

Qu’est ce que Jenkins ? • Des centaines de plugins disponibles. • Facilement extensible

Qu’est ce que Jenkins ? • Des centaines de plugins disponibles. • Facilement extensible • Basé sur RBAC. Possibilité de définir finement des droits d’accès par projet

Quelques termes • Master § Serveur principal de Jenkins coordonnant les processus tels que

Quelques termes • Master § Serveur principal de Jenkins coordonnant les processus tels que le stockage de la configuration, la gestion des plugins et l’affichage de l’interface Utilisateur • Project (Ex : Job) § Ensemble des tâches définies par l’utilisateur pour construire une partie d’un logiciel • Pipeline § Modèle permettant de réaliser un pipeline de déploiement continue • Executor § Processus exécutant un projet ou un pipeline

Quelques termes • Step § Etape unique dans la phase d’un « projet »

Quelques termes • Step § Etape unique dans la phase d’un « projet » ou d’un « pipeline » • Stage § Etape dans un pipeline (ex : Build, Test, Deploy) composée de plusieurs « Steps » • Agent § Machine ou conteneur utilisé par le « master » pour exécuter les étapes d’un « projet »

Configuration des diverses phases

Configuration des diverses phases

Installation • Récupération du war https: //jenkins. io/download/ • Déploiement sur un tomcat ou

Installation • Récupération du war https: //jenkins. io/download/ • Déploiement sur un tomcat ou directement avec la commande java (PS : possibilité de spécifier le port --http. Port=8081)

Nouveau projet • Propose de nombreux types de projet § § § Free style

Nouveau projet • Propose de nombreux types de projet § § § Free style Construction d’un projet Maven Pipeline et multibranche pipeline (les plus utilisés pour des projets Git) • Possibilité de cloner un projet existant

Etapes de construction Récupération des sources Quel SCM ? • Publication des rapports •

Etapes de construction Récupération des sources Quel SCM ? • Publication des rapports • Envoi de notifications (Email. . ) • Publication de la javadoc • … Déclencheurs du build Environnement du build • Déclencheur distant (hook github, gitlab) • Suite à un autre build • Périodiquement Actions post-build Scripts pour le build • Variables d’environnement • Configuration Sonar • Règles de nettoyage du workspace • Scripts Maven, gradle, ant • Scripts shell

Gestionnaire de sources • Différents types des sources (Git, Subversion, CVS Possibilité d’ajouter des

Gestionnaire de sources • Différents types des sources (Git, Subversion, CVS Possibilité d’ajouter des comportements

Phase de construction • Nombreux outils de build pour plusieurs langages • Java §

Phase de construction • Nombreux outils de build pour plusieurs langages • Java § • . Net § Maven, Gradle, Ant MSBuild • i. OS • Scripts Shell

Phase Post-Build • Nombreux mécanisme de notification § § § Slack SMS Email

Phase Post-Build • Nombreux mécanisme de notification § § § Slack SMS Email

Phase Post Build • Nombreux types de rapport publiable § Rapports sur l’analyse statistique

Phase Post Build • Nombreux types de rapport publiable § Rapports sur l’analyse statistique du code ( Checkstyle, PMD, Findbug, …) § Rapport d’exécution et de couverture des tests unitaires (Junit, Cobertura, Test. NG, Ja. Co…) § Publication de la Java. Doc

Résultat du build

Résultat du build

Dashboard Historique TU / Coverage Accés Configuration / Modification Historique Des builds

Dashboard Historique TU / Coverage Accés Configuration / Modification Historique Des builds

Vision de l’espace de travail • Possibilité de voir l’espace de travail Conseil :

Vision de l’espace de travail • Possibilité de voir l’espace de travail Conseil : il est préférable de le supprimer en phase Post Build =>Risque d’occuper beaucoup d’espace (Exemple : node_modules > 400 Mo par build)

Rapport des Tests Unitaires Progression du passage des TU Etat des TU par packages

Rapport des Tests Unitaires Progression du passage des TU Etat des TU par packages / par TU

Derniers changements

Derniers changements

Journal d’execution Permet de facilement déterminer les problèmes lors de la compilation et de

Journal d’execution Permet de facilement déterminer les problèmes lors de la compilation et de corriger

Couverture de code avec Ja. Co Statistiques par classes Couverture par ligne

Couverture de code avec Ja. Co Statistiques par classes Couverture par ligne

Possibilité de paramétrer le build • Nombreuses extensions Ex : Récupération des branches /

Possibilité de paramétrer le build • Nombreuses extensions Ex : Récupération des branches / tags Git / SVN • Définition de liste de valeur, checkbox, saisie manuelle • Paramètres exploitable dans les scripts de build

A vous de jouer !

A vous de jouer !