More Related Content Similar to CI-Jenkins.pptx (20) CI-Jenkins.pptx2. Historique
âą En 2004, apparition dâHudson, solution opensource dâintĂ©gration
continue développée par Sun MicroSystems
âą 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 !
3. Quâest ce que Jenkins ?
âą Solution OpenSource CI/CD Ă©crite en Java et permettant :
ï§ Dâautomatiser les builds 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 des 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âŠ)
4. 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
5. 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
6. Quelques termes
âą Step
ï§ Ensemble dâinstructions dans une Ă©tape « stage »
âą 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 »
8. POURQUOI UTILISER JENKINS ?
⹠Retour immédiat sur les builds cassés
⹠Pas de construction à partir de machines de développement et de
copie manuelle de fichiers
⹠Déploiement automatisé
⹠Exécution automatisée des tests et retour d'information
10. 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 --httpPort=8081)
11. 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
12. Etapes de construction
Récupération des
sources
DĂ©clencheurs du
build
Environnement du
build
Scripts pour le
build
Actions post-build
Quel SCM ? âą DĂ©clencheur distant
(hook github, gitlab)
âą Suite Ă un autre build
âą PĂ©riodiquement
âą Variables
dâenvironnement
âą Configuration Sonar
âą RĂšgles de nettoyage
du workspace
âą Scripts Maven,
gradle, ant
âą Scripts shell
âą Publication des
rapports
âą Envoi de notifications
(Email..)
âą Publication de la
javadoc
âą âŠ
14. Phase de construction
âą Nombreux outils de build pour
plusieurs langages
âą Java
ï§ Maven, Gradle, Ant
âą .Net
ï§ MSBuild
âą iOS
âą Scripts Shell
16. 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,
TestNG, JaCoCoâŠ)
ï§ Publication de la JavaDoc
19. 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)
20. Rapport des Tests Unitaires
Progression du passage
des TU
Etat des TU par packages
/ par TU
24. 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