SlideShare une entreprise Scribd logo
1  sur  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 !

Contenu connexe

Tendances

Docker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à DockerDocker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à DockerThibaut Marmin
 
Une (simple) présentation de Apache Maven 2
Une (simple) présentation de Apache Maven 2Une (simple) présentation de Apache Maven 2
Une (simple) présentation de Apache Maven 2teejug
 
Midi technique - présentation docker
Midi technique - présentation dockerMidi technique - présentation docker
Midi technique - présentation dockerOlivier Eeckhoutte
 
Workshop Spring - Session 4 - Spring Batch
Workshop Spring -  Session 4 - Spring BatchWorkshop Spring -  Session 4 - Spring Batch
Workshop Spring - Session 4 - Spring BatchAntoine Rey
 
Docker, mais qu’est-ce que c’est ?
Docker, mais qu’est-ce que c’est ?Docker, mais qu’est-ce que c’est ?
Docker, mais qu’est-ce que c’est ?Julien Maitrehenry
 
Linux - Hedi Magroun - AUF - 2008
Linux -  Hedi Magroun - AUF - 2008Linux -  Hedi Magroun - AUF - 2008
Linux - Hedi Magroun - AUF - 2008Hedi Magroun
 
Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub ActionsKnoldus Inc.
 
Présentation de git
Présentation de gitPrésentation de git
Présentation de gitJulien Blin
 
Présentation Git & GitHub
Présentation Git & GitHubPrésentation Git & GitHub
Présentation Git & GitHubThibault Vlacich
 
Gitlab CI : Integration et Déploiement Continue
Gitlab CI : Integration et Déploiement ContinueGitlab CI : Integration et Déploiement Continue
Gitlab CI : Integration et Déploiement ContinueVincent Composieux
 
DevOps avec Ansible et Docker
DevOps avec Ansible et DockerDevOps avec Ansible et Docker
DevOps avec Ansible et DockerStephane Manciot
 
Container based CI/CD on GitHub Actions
Container based CI/CD on GitHub ActionsContainer based CI/CD on GitHub Actions
Container based CI/CD on GitHub ActionsCasey Lee
 
Docker - un outil pour faciliter le développement et le déploiement informatique
Docker - un outil pour faciliter le développement et le déploiement informatiqueDocker - un outil pour faciliter le développement et le déploiement informatique
Docker - un outil pour faciliter le développement et le déploiement informatiquesdenier
 

Tendances (20)

Docker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à DockerDocker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à Docker
 
Intro to docker
Intro to dockerIntro to docker
Intro to docker
 
Une (simple) présentation de Apache Maven 2
Une (simple) présentation de Apache Maven 2Une (simple) présentation de Apache Maven 2
Une (simple) présentation de Apache Maven 2
 
Midi technique - présentation docker
Midi technique - présentation dockerMidi technique - présentation docker
Midi technique - présentation docker
 
Workshop Spring - Session 4 - Spring Batch
Workshop Spring -  Session 4 - Spring BatchWorkshop Spring -  Session 4 - Spring Batch
Workshop Spring - Session 4 - Spring Batch
 
Presentation-DEVOPS-par-GDG
Presentation-DEVOPS-par-GDGPresentation-DEVOPS-par-GDG
Presentation-DEVOPS-par-GDG
 
Docker, mais qu’est-ce que c’est ?
Docker, mais qu’est-ce que c’est ?Docker, mais qu’est-ce que c’est ?
Docker, mais qu’est-ce que c’est ?
 
Linux - Hedi Magroun - AUF - 2008
Linux -  Hedi Magroun - AUF - 2008Linux -  Hedi Magroun - AUF - 2008
Linux - Hedi Magroun - AUF - 2008
 
Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub Actions
 
DevOps 3 - Docker.pdf
DevOps 3 - Docker.pdfDevOps 3 - Docker.pdf
DevOps 3 - Docker.pdf
 
Spring Batch - concepts de base
Spring Batch - concepts de baseSpring Batch - concepts de base
Spring Batch - concepts de base
 
Présentation de git
Présentation de gitPrésentation de git
Présentation de git
 
Apache Maven 3
Apache Maven 3Apache Maven 3
Apache Maven 3
 
Selenium
SeleniumSelenium
Selenium
 
Présentation Git & GitHub
Présentation Git & GitHubPrésentation Git & GitHub
Présentation Git & GitHub
 
Gitlab CI : Integration et Déploiement Continue
Gitlab CI : Integration et Déploiement ContinueGitlab CI : Integration et Déploiement Continue
Gitlab CI : Integration et Déploiement Continue
 
DevOps avec Ansible et Docker
DevOps avec Ansible et DockerDevOps avec Ansible et Docker
DevOps avec Ansible et Docker
 
Présentation Docker
Présentation DockerPrésentation Docker
Présentation Docker
 
Container based CI/CD on GitHub Actions
Container based CI/CD on GitHub ActionsContainer based CI/CD on GitHub Actions
Container based CI/CD on GitHub Actions
 
Docker - un outil pour faciliter le développement et le déploiement informatique
Docker - un outil pour faciliter le développement et le déploiement informatiqueDocker - un outil pour faciliter le développement et le déploiement informatique
Docker - un outil pour faciliter le développement et le déploiement informatique
 

Similaire à CI-Jenkins.pptx

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 ...Jasmine Conseil
 
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.pdfqsdqsd4
 
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.pptxAnisSalhi3
 
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-nantesChristophe Furmaniak
 
Ê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 2017Julien Dubois
 
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 DevopsFactoVia
 
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 DevopsAZUG FR
 
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 JavaCédric Leblond
 
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...TelecomValley
 
20081008 - Tours Jug - Apache Maven
20081008  - Tours Jug - Apache Maven20081008  - Tours Jug - Apache Maven
20081008 - Tours Jug - Apache MavenArnaud Héritier
 
What's Next Replay - IC / Jenkins
What's Next Replay - IC / JenkinsWhat's Next Replay - IC / Jenkins
What's Next Replay - IC / JenkinsZenikaOuest
 
JENKINS_OWF11_OSDC_PARIS20110924
JENKINS_OWF11_OSDC_PARIS20110924JENKINS_OWF11_OSDC_PARIS20110924
JENKINS_OWF11_OSDC_PARIS20110924Gregory Boissinot
 
Play Framework
Play FrameworkPlay Framework
Play FrameworkArmaklan
 
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)Vincent Biret
 
Quoi de neuf à Devoxx France 2017 ?
Quoi de neuf à Devoxx France 2017 ?Quoi de neuf à Devoxx France 2017 ?
Quoi de neuf à Devoxx France 2017 ?Antoine Rey
 
SUSE Expert Days Paris 2018 – CaaSP
SUSE Expert Days Paris 2018 – CaaSPSUSE Expert Days Paris 2018 – CaaSP
SUSE Expert Days Paris 2018 – CaaSPSUSE
 
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 DerueAZUG FR
 

Similaire à 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 !