SlideShare a Scribd company logo
1 of 25
Jenkins
Réalisé par:
BENMBARKA Mohammed
ERGUIBI Mohamed Said
HACHMI Saad
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 !
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
)
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
 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 »
Qui utilise Jenkins
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
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 --httpPort=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
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
‱ 

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
 Maven, Gradle, Ant
‱ .Net
 MSBuild
‱ iOS
‱ 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,
TestNG, JaCoCo
)
 Publication de la JavaDoc
RĂ©sultat du build
Dashboard
Historique TU / Coverage
Historique
Des builds
Accés
Configuration /
Modification
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 JaCoCo
Couverture par ligne
Statistiques par classes
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 !

More Related Content

What's hot

debugging openstack neutron /w openvswitch
debugging openstack neutron /w openvswitchdebugging openstack neutron /w openvswitch
debugging openstack neutron /w openvswitch
얎형 읎
 

What's hot (20)

Gitlab CI/CD
Gitlab CI/CDGitlab CI/CD
Gitlab CI/CD
 
debugging openstack neutron /w openvswitch
debugging openstack neutron /w openvswitchdebugging openstack neutron /w openvswitch
debugging openstack neutron /w openvswitch
 
kubernetes, pourquoi et comment
kubernetes, pourquoi et commentkubernetes, pourquoi et comment
kubernetes, pourquoi et comment
 
Podman Overview and internals.pdf
Podman Overview and internals.pdfPodman Overview and internals.pdf
Podman Overview and internals.pdf
 
DevOps avec Ansible et Docker
DevOps avec Ansible et DockerDevOps avec Ansible et Docker
DevOps avec Ansible et Docker
 
Tutoriel GIT
Tutoriel GITTutoriel GIT
Tutoriel GIT
 
Introducing GitLab (June 2018)
Introducing GitLab (June 2018)Introducing GitLab (June 2018)
Introducing GitLab (June 2018)
 
CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton
 
Git
GitGit
Git
 
GITS Class #16: CI/CD (Continuous Integration & Continuous Deployment) with G...
GITS Class #16: CI/CD (Continuous Integration & Continuous Deployment) with G...GITS Class #16: CI/CD (Continuous Integration & Continuous Deployment) with G...
GITS Class #16: CI/CD (Continuous Integration & Continuous Deployment) with G...
 
Docker: From Zero to Hero
Docker: From Zero to HeroDocker: From Zero to Hero
Docker: From Zero to Hero
 
Introduction to Docker - VIT Campus
Introduction to Docker - VIT CampusIntroduction to Docker - VIT Campus
Introduction to Docker - VIT Campus
 
Présentation Docker
Présentation DockerPrésentation Docker
Présentation Docker
 
Using GitLab CI
Using GitLab CIUsing GitLab CI
Using GitLab CI
 
CICD with Jenkins
CICD with JenkinsCICD with Jenkins
CICD with Jenkins
 
Git Introduction Tutorial
Git Introduction TutorialGit Introduction Tutorial
Git Introduction Tutorial
 
Continuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CIContinuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CI
 
Présentation de git
Présentation de gitPrésentation de git
Présentation de git
 
Git - Basic Crash Course
Git - Basic Crash CourseGit - Basic Crash Course
Git - Basic Crash Course
 
Starting with Git & GitHub
Starting with Git & GitHubStarting with Git & GitHub
Starting with Git & GitHub
 

Similar to CI-Jenkins.pptx

JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdf
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdfJFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdf
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdf
qsdqsd4
 
JENKINS_OWF11_OSDC_PARIS20110924
JENKINS_OWF11_OSDC_PARIS20110924JENKINS_OWF11_OSDC_PARIS20110924
JENKINS_OWF11_OSDC_PARIS20110924
Gregory Boissinot
 
Play Framework
Play FrameworkPlay Framework
Play Framework
Armaklan
 

Similar to CI-Jenkins.pptx (20)

Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...
 
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdf
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdfJFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdf
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdf
 
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptx
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptxJFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptx
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptx
 
Rex docker en production meeutp-docker-nantes
Rex docker en production meeutp-docker-nantesRex docker en production meeutp-docker-nantes
Rex docker en production meeutp-docker-nantes
 
Être productif avec JHipster - Devoxx France 2017
Être productif avec JHipster - Devoxx France 2017Être productif avec JHipster - Devoxx France 2017
Être productif avec JHipster - Devoxx France 2017
 
Cedric leblond migrer jenkins AWS vers Azure Devops
Cedric leblond migrer jenkins AWS vers Azure DevopsCedric leblond migrer jenkins AWS vers Azure Devops
Cedric leblond migrer jenkins AWS vers Azure Devops
 
Cedric leblond migrer jenkins AWS vers Azure Devops
Cedric leblond migrer jenkins AWS vers Azure DevopsCedric leblond migrer jenkins AWS vers Azure Devops
Cedric leblond migrer jenkins AWS vers Azure Devops
 
Présentation1
Présentation1Présentation1
Présentation1
 
Octo Maven.pdf
Octo Maven.pdfOcto Maven.pdf
Octo Maven.pdf
 
Migrer de Jenkins vers Azure DevOps les Builds Java
Migrer de Jenkins vers Azure DevOps les Builds JavaMigrer de Jenkins vers Azure DevOps les Builds Java
Migrer de Jenkins vers Azure DevOps les Builds Java
 
SoirĂ©e du Test Logiciel - Mise en place d’une plateforme de test automatisĂ© a...
SoirĂ©e du Test Logiciel - Mise en place d’une plateforme de test automatisĂ© a...SoirĂ©e du Test Logiciel - Mise en place d’une plateforme de test automatisĂ© a...
SoirĂ©e du Test Logiciel - Mise en place d’une plateforme de test automatisĂ© a...
 
20081008 - Tours Jug - Apache Maven
20081008  - Tours Jug - Apache Maven20081008  - Tours Jug - Apache Maven
20081008 - Tours Jug - Apache Maven
 
Universitélang scala tools
Universitélang scala toolsUniversitélang scala tools
Universitélang scala tools
 
What's Next Replay - IC / Jenkins
What's Next Replay - IC / JenkinsWhat's Next Replay - IC / Jenkins
What's Next Replay - IC / Jenkins
 
JENKINS_OWF11_OSDC_PARIS20110924
JENKINS_OWF11_OSDC_PARIS20110924JENKINS_OWF11_OSDC_PARIS20110924
JENKINS_OWF11_OSDC_PARIS20110924
 
Play Framework
Play FrameworkPlay Framework
Play Framework
 
Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)
 
Quoi de neuf Ă  Devoxx France 2017 ?
Quoi de neuf Ă  Devoxx France 2017 ?Quoi de neuf Ă  Devoxx France 2017 ?
Quoi de neuf Ă  Devoxx France 2017 ?
 
SUSE Expert Days Paris 2018 – CaaSP
SUSE Expert Days Paris 2018 – CaaSPSUSE Expert Days Paris 2018 – CaaSP
SUSE Expert Days Paris 2018 – CaaSP
 
Gab17 lyon-Docker pour quoi faire - CĂ©dric Leblond et Derue
Gab17 lyon-Docker pour quoi faire - CĂ©dric Leblond et DerueGab17 lyon-Docker pour quoi faire - CĂ©dric Leblond et Derue
Gab17 lyon-Docker pour quoi faire - CĂ©dric Leblond et Derue
 

CI-Jenkins.pptx

  • 2. 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 ‱ 

  • 13. Gestionnaire de sources ‱ DiffĂ©rents types des sources (Git, Subversion, CVS PossibilitĂ© d’ajouter des comportements
  • 14. Phase de construction ‱ Nombreux outils de build pour plusieurs langages ‱ Java  Maven, Gradle, Ant ‱ .Net  MSBuild ‱ iOS ‱ Scripts Shell
  • 15. Phase Post-Build ‱ Nombreux mĂ©canisme de notification  Slack  SMS  Email
  • 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
  • 18. Dashboard Historique TU / Coverage Historique Des builds AccĂ©s Configuration / Modification
  • 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
  • 22. Journal d’execution Permet de facilement dĂ©terminer les problĂšmes lors de la compilation et de corriger
  • 23. Couverture de code avec JaCoCo Couverture par ligne Statistiques par classes
  • 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
  • 25. A vous de jouer !