Module Intgration Continue Premiers pas Jenkins Historique En
- Slides: 23
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. 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 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 • 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 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 » 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
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 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 • 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 comportements
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 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
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 : 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 / par TU
Derniers changements
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
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 !
- Kawaler modny pan tadeusz
- Premier's sporting challenge
- Nombre premier le plus grand
- Construire les premiers outils pour structurer sa pensée
- Decomposer 210 en produit de facteur premier
- On ne peut pas ne pas communiquer
- Mary elizabeth frye ne pleure pas devant ma tombe
- Lecture pas à pas
- Moteur pas à pas à aimant permanent
- Arthur rimbaud exposé
- Historique de la grh
- Bref historique
- Histoire de la profession infirmière
- Les types de cuisine
- Rappel historique
- Echographie historique
- Manga historique
- Cum + subjonctif
- Beaumarchais contexte historique
- Calculero
- Brasserie star madagascar - historique
- Historique de la gestion des ressources humaines
- Guernica analyse
- C device module module 1