SlideShare une entreprise Scribd logo
1  sur  94
Télécharger pour lire hors ligne
Introduction à l’intégration
continue avec Jenkins
ConFoo 2015
Eric Hogue
@ehogue
erichogue.ca 1
Wikipedia
ensemble de pratiques [...] consistant à vérifier
à chaque modification [...] que le résultat des
modifications ne produit pas de régression
dans l'application développée
http://fr.wikipedia.org/wiki/Int%C3%A9gration_continue
2
Assemblage automatique
3
4
Contrôle automatique
5
Rapide
6
Intégration continue
7
8
Outils
9
10
Moteurs de production
11
Résultats
12
Rapports
13
Rapports
14
Tendances
15
Extensions
16
Chuck Norris
17
Prêt
18
Projet démo
https://github.com/EricHogue/CIPresentation
19
20
21
http://192.168.56.101:8080/
22
23
24
Extensions
● Git
● Phing
● Green Balls
● ChuckNorris
25
26
27
28
Emplacement du code
29
Quand assembler
30
Moteurs de production
31
Phing
32
Comment assembler
33
Comment assembler
34
35
Outils PHP
36
Tests dynamiques
37
38
39
Échec
40
Publier le rapport PHPUnit
41
Publier le rapport PHPUnit
42
43
44
Publier la couverture du code
45
46
47
48
Tests statiques
49
PHP_CodeSniffer
50
Publier le rapport Checkstyle
51
52
53
54
PHP Depend
55
Publier JDepend
56
57
Classes
58
Couplage
59
Couplage afférent Couplage efférent
Abstraction
AC / TC 60
Instabilité
Ce / (Ce + Ca) 61
Distance
Idealized line → A + I = 1 62
Abstraction Instability Chart
63
Overview Pyramid - Héritage
64
Average Number
of Derived
Classes
Average
Hierarchy Height
Overview Pyramid - Grandeur et
complexité
65
public function test() {
if ($a) {
...
} elseif ($b) {
...
}
foreach ($c as $d) {
if ($e) {
} else {
}
}
}
1
2
3
4
5
66
Overview Pyramid - Size And
Complexity
67
Overview Pyramid - Couplage
68
69
PHP Mess Detector
70
Jeux de règles
71
Publier PMD
72
73
74
75
PHP Copy Paste Detector
76
Publier l’analyse du code dupliqué
77
78
Violations
79
80
81
82
83
Notifications courriel
84
85
Plus de notifications
86
87
Avantages
88
Rétroaction rapide
89
Mesures
90
Automatisation
91
Confiance
92
https://github.com/EricHogue/CIPresentation
Commentaires: https://joind.in/13215
twitter: @ehogue
PHP Mentoring: http://phpmentoring.org/
93
● TrafficJam.jpg - Thomanication - https://www.flickr.com/photos/thomanication/6216702247
● is_it_worth_the_time.png - xkcd - http://xkcd.com/1205/
● LionSelfie.jpg - Silke Remmery - https://www.flickr.com/photos/silkeremmery/15856169578/in/faves-96579472@N07/
● RacingDownTheRunway.jpg - Philipp Lücke - https://www.flickr.com/photos/philippluecke/6993495094/in/faves-96579472@N07/
● PreciousTreasure.jpg - Dave Sutherland - https://www.flickr.com/photos/raptortheangel/12786162594/in/faves-96579472@N07/
● ComputerBug.jpg - Brendan Dolan-Gavitt - https://www.flickr.com/photos/moyix/2352619003/in/faves-96579472@N07/
● CatchItIfYouCan.jpg - Tim Mowrer - https://www.flickr.com/photos/mekin/281791343/in/faves-96579472@N07/
● CILights.jpg - Jan Krutisch - https://www.flickr.com/photos/jankrutisch/4272142306/in/photostream/
● ConductorFrederikMagleConductingASymphonyOrchestra10.jpg - Frederik Magle Music - https://www.flickr.
com/photos/frederikmagle/7026769687/in/photostream/
● Ready.jpg - amanda tipton - https://www.flickr.com/photos/demandaj/6789626120
● StaticWallpaper.jpg - James Spinks - https://www.flickr.com/photos/realjimbob/13270099
● DynamicEarthCME.jpg - NASA Goddard Space Flight Center - https://www.flickr.com/photos/gsfc/7402440272
● Containers.jpg - www.GlynLowe.comhttps://www.flickr.com/photos/batega/2056949264 - https://www.flickr.
com/photos/glynlowe/10921733615
● MetricMania.jpg - Josep Ma. Rosell - https://www.flickr.com/photos/batega/2056949264
● CheaperByTheYard.jpg - Bill Smith - https://www.flickr.com/photos/byzantiumbooks/16173360807
● IHateWhenSomeoneLeavesaMessintheBathroom.jpg - e_monk - https://www.flickr.com/photos/e_monk/5931790591
● FadeToGrey.jpg - Andreas Levers - https://www.flickr.com/photos/96dpi/2571056264
● LCConversion.jpg - Ginny - https://www.flickr.com/photos/ginnerobot/2548843369
● NotSoMiniBoot.jpg - Eric E Castro - https://www.flickr.com/photos/ecastro/6195349092
● LEGOShip.jpg - Andrey Belenko - https://www.flickr.com/photos/belenko/4295897526
● GrungeWarningSignDoNotReadThisSign.jpg - Nicolas Raymond - https://www.flickr.com/photos/80497449@N04/7417352980
● Notifications.jpg - Ben Schumin - http://www.flickr.com/photos/schuminweb/9806474636/
● MoreBrokenWindows.jpg - brainflakes. - https://www.flickr.com/photos/brainflakes/2763231289
● Fragile.jpg - Eye - the world through my I - https://www.flickr.com/photos/ccpixel/
● BalancingAct.jpg - Colin Harris ADE - https://www.flickr.com/photos/classblog/5136926303
● Escalator.jpg - Adam Lederer - https://www.flickr.com/photos/elmada/2466685791
● ZombieWeb.jpg - GollyGforce - Living My Worst Nightmare - https://www.flickr.com/photos/see-through-the-eye-of-g/8218600295
● LegoMicroTrophy.jpg - David Luders - https://www.flickr.com/photos/42988571@N08/15965163069
● GearWork2.jpg - Curious Expeditions - https://www.flickr.com/photos/curiousexpeditions/489992128
● BobTheBuilder.jpg - clement127 - https://www.flickr.com/photos/clement127/15943249419
● RulesRulesRules.jpg - Ricardo Liberato - https://www.flickr.com/photos/liberato/2292651755
94

Contenu connexe

Tendances

Tendances (20)

Azure DevOps Tests Plan
Azure DevOps Tests PlanAzure DevOps Tests Plan
Azure DevOps Tests Plan
 
Méthode d'Agile: Scrum
Méthode d'Agile: ScrumMéthode d'Agile: Scrum
Méthode d'Agile: Scrum
 
DEVOPS
DEVOPSDEVOPS
DEVOPS
 
Présentation de git
Présentation de gitPrésentation de git
Présentation de git
 
Test de logiciels
Test de logiciels Test de logiciels
Test de logiciels
 
Gitlab ci-cd
Gitlab ci-cdGitlab ci-cd
Gitlab ci-cd
 
Introduction to jenkins
Introduction to jenkinsIntroduction to jenkins
Introduction to jenkins
 
Automatisation des tests - objectifs et concepts - partie 1
Automatisation des tests  - objectifs et concepts - partie 1Automatisation des tests  - objectifs et concepts - partie 1
Automatisation des tests - objectifs et concepts - partie 1
 
Introduction au génie logiciel 1.2
Introduction au génie logiciel 1.2Introduction au génie logiciel 1.2
Introduction au génie logiciel 1.2
 
Introduction à Node.js
Introduction à Node.js Introduction à Node.js
Introduction à Node.js
 
Support programmation orientée objet c# .net version f8
Support programmation orientée objet c#  .net version f8Support programmation orientée objet c#  .net version f8
Support programmation orientée objet c# .net version f8
 
Agile presentation
Agile presentationAgile presentation
Agile presentation
 
Présentation Docker
Présentation DockerPrésentation Docker
Présentation Docker
 
TP Git avancé DevoxxFR 2018 (exercices)
TP Git avancé DevoxxFR 2018 (exercices)TP Git avancé DevoxxFR 2018 (exercices)
TP Git avancé DevoxxFR 2018 (exercices)
 
Docker
DockerDocker
Docker
 
Spring mvc
Spring mvcSpring mvc
Spring mvc
 
Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub Actions
 
Introduction à DevOps
Introduction à DevOpsIntroduction à DevOps
Introduction à DevOps
 
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...
 
MÃthode-agile-SCRUM.pptx
MÃthode-agile-SCRUM.pptxMÃthode-agile-SCRUM.pptx
MÃthode-agile-SCRUM.pptx
 

Similaire à Introduction à l’intégration continue avec Jenkins

Living system or build factory - Chris Maxwell
Living system or build factory  - Chris MaxwellLiving system or build factory  - Chris Maxwell
Living system or build factory - Chris Maxwell
Devopsdays
 
NetworkX - python graph analysis and visualization @ PyHug
NetworkX - python graph analysis and visualization @ PyHugNetworkX - python graph analysis and visualization @ PyHug
NetworkX - python graph analysis and visualization @ PyHug
Jimmy Lai
 
There's a Module for That, MIMA Summit 2010
There's a Module for That, MIMA Summit 2010There's a Module for That, MIMA Summit 2010
There's a Module for That, MIMA Summit 2010
Emma Jane Hogbin Westby
 

Similaire à Introduction à l’intégration continue avec Jenkins (20)

Introduction à l'intégration continue en PHP
Introduction à l'intégration continue en PHPIntroduction à l'intégration continue en PHP
Introduction à l'intégration continue en PHP
 
Introduction to Continuous Integration with Jenkins
Introduction to Continuous Integration with JenkinsIntroduction to Continuous Integration with Jenkins
Introduction to Continuous Integration with Jenkins
 
Silos are for farmers
Silos are for farmersSilos are for farmers
Silos are for farmers
 
Git Basics Workshop Summer of Tech 2010
Git Basics Workshop Summer of Tech 2010Git Basics Workshop Summer of Tech 2010
Git Basics Workshop Summer of Tech 2010
 
Behaviour-Driven Development: escrevendo especificações ágeis
Behaviour-Driven Development: escrevendo especificações ágeisBehaviour-Driven Development: escrevendo especificações ágeis
Behaviour-Driven Development: escrevendo especificações ágeis
 
Maximes Presentation For Rubyconf China 2009
Maximes Presentation For Rubyconf China 2009Maximes Presentation For Rubyconf China 2009
Maximes Presentation For Rubyconf China 2009
 
The Journey Towards Continuous Integration
The Journey Towards Continuous IntegrationThe Journey Towards Continuous Integration
The Journey Towards Continuous Integration
 
A DevOps Discussion
A DevOps DiscussionA DevOps Discussion
A DevOps Discussion
 
Working Together Virtually
Working Together VirtuallyWorking Together Virtually
Working Together Virtually
 
Cloud Computing: An Overview
Cloud Computing: An OverviewCloud Computing: An Overview
Cloud Computing: An Overview
 
State of the kit (FOSDEM 2013)
State of the kit (FOSDEM 2013)State of the kit (FOSDEM 2013)
State of the kit (FOSDEM 2013)
 
Metrics that Matter
Metrics that MatterMetrics that Matter
Metrics that Matter
 
The Continuous PHP Pipeline
The Continuous PHP PipelineThe Continuous PHP Pipeline
The Continuous PHP Pipeline
 
Continuous delivery - tools and techniques
Continuous delivery - tools and techniquesContinuous delivery - tools and techniques
Continuous delivery - tools and techniques
 
Kaizen With GreenHopper: Visualising Agile & Kanban Storywalls
Kaizen With GreenHopper: Visualising Agile & Kanban StorywallsKaizen With GreenHopper: Visualising Agile & Kanban Storywalls
Kaizen With GreenHopper: Visualising Agile & Kanban Storywalls
 
Product Owner Challenge 3.0 (Agile Cambridge 2016)
Product Owner Challenge 3.0 (Agile Cambridge 2016)Product Owner Challenge 3.0 (Agile Cambridge 2016)
Product Owner Challenge 3.0 (Agile Cambridge 2016)
 
Living system or build factory - Chris Maxwell
Living system or build factory  - Chris MaxwellLiving system or build factory  - Chris Maxwell
Living system or build factory - Chris Maxwell
 
ACI Design and Creativity Day05 2015
ACI Design and Creativity Day05 2015ACI Design and Creativity Day05 2015
ACI Design and Creativity Day05 2015
 
NetworkX - python graph analysis and visualization @ PyHug
NetworkX - python graph analysis and visualization @ PyHugNetworkX - python graph analysis and visualization @ PyHug
NetworkX - python graph analysis and visualization @ PyHug
 
There's a Module for That, MIMA Summit 2010
There's a Module for That, MIMA Summit 2010There's a Module for That, MIMA Summit 2010
There's a Module for That, MIMA Summit 2010
 

Plus de Eric Hogue

Plus de Eric Hogue (10)

Au secours, mon application est brisée - Ou comment déboguer
Au secours, mon application est brisée - Ou comment déboguerAu secours, mon application est brisée - Ou comment déboguer
Au secours, mon application est brisée - Ou comment déboguer
 
Commencer avec le TDD
Commencer avec le TDDCommencer avec le TDD
Commencer avec le TDD
 
Guarding Your Code Against Bugs with Continuous Testing
Guarding Your Code Against Bugs with Continuous TestingGuarding Your Code Against Bugs with Continuous Testing
Guarding Your Code Against Bugs with Continuous Testing
 
Continuous testing In PHP
Continuous testing In PHPContinuous testing In PHP
Continuous testing In PHP
 
La sécurité des communications avec GPG
La sécurité des communications avec GPGLa sécurité des communications avec GPG
La sécurité des communications avec GPG
 
Getting started with TDD - Confoo 2014
Getting started with TDD - Confoo 2014Getting started with TDD - Confoo 2014
Getting started with TDD - Confoo 2014
 
Continuous Testing
Continuous TestingContinuous Testing
Continuous Testing
 
Commencer avec le tdd
Commencer avec le tddCommencer avec le tdd
Commencer avec le tdd
 
Introduction to ci with jenkins
Introduction to ci with jenkinsIntroduction to ci with jenkins
Introduction to ci with jenkins
 
Integration continue
Integration continueIntegration continue
Integration continue
 

Dernier

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Dernier (20)

Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 

Introduction à l’intégration continue avec Jenkins