SlideShare a Scribd company logo
1 of 94
Download to read offline
Introduction To Continuous
Integration With Jenkins
Sunshine PHP 2015
Eric Hogue
@ehogue
erichogue.ca 1
Wikipedia
the practice, in software engineering, of
merging all developer working copies with a
shared mainline several times a day
http://en.wikipedia.org/wiki/Continuous_integration
2
Automated Build
3
4
Self Testing
5
Fast
6
Continuous Integration
7
8
CI Tools
9
10
Builder
11
Build Results
12
Reports
13
Reports
14
Trends
15
Plugins
16
Chuck Norris
17
Ready
18
Demo Project
https://github.com/EricHogue/CIPresentation
19
20
21
http://192.168.56.101:8080/
22
23
24
Plugins
● Git
● Phing
● Green Balls
● ChuckNorris
25
26
27
28
Code Location
29
When to Build
30
Build Tools
31
Phing
32
How to Build
33
How to Build
34
35
PHP Tools
36
Dynamic Tests
37
38
39
Failed Build
40
Publish PHPUnit Report
41
Publish PHPUnit Report
42
43
44
Publish Code Coverage
45
46
47
48
Static Tests
49
PHP_CodeSniffer
50
Publish Checkstyle results
51
52
53
54
PHP Depend
55
Publish JDepend
56
57
Classes
58
Coupling
59
Afferent Coupling Efferent Coupling
Abstractness
AC / TC 60
Instability
Ce / (Ce + Ca) 61
Distance
Idealized line → A + I = 1 62
Abstraction Instability Chart
63
Overview Pyramid - Inheritance
64
Average Number
of Derived
Classes
Average
Hierarchy Height
Overview Pyramid - Size And
Complexity
65
66
Overview Pyramid - Size And
Complexity
67
Overview Pyramid - Coupling
68
69
PHP Mess Detector
70
Rulessets
71
Publish PMD
72
73
74
75
PHP Copy Paste Detector
76
Publish Duplicate Code Analysis
77
78
Violations
79
80
81
82
83
Email Notifications
84
85
More Notifications
86
87
Benefits
88
Quick Feedback
89
Metrics
90
Automation
91
Confidence
92
https://github.com/EricHogue/CIPresentation
Comments: https://joind.in/13462
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

More Related Content

Viewers also liked

Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)
Dennys Hsieh
 
Yale Jenkins Show and Tell
Yale Jenkins Show and TellYale Jenkins Show and Tell
Yale Jenkins Show and Tell
E. Camden Fisher
 
Ecosistemas de Desarrollo Software - Automatización
Ecosistemas de Desarrollo Software - AutomatizaciónEcosistemas de Desarrollo Software - Automatización
Ecosistemas de Desarrollo Software - Automatización
Manuel Jesús Recena Soto
 

Viewers also liked (20)

Jenkins - From Continuous Integration to Continuous Delivery
Jenkins - From Continuous Integration to Continuous DeliveryJenkins - From Continuous Integration to Continuous Delivery
Jenkins - From Continuous Integration to Continuous Delivery
 
Introduction to jenkins
Introduction to jenkinsIntroduction to jenkins
Introduction to jenkins
 
CI and CD with Jenkins
CI and CD with JenkinsCI and CD with Jenkins
CI and CD with Jenkins
 
Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)
 
Getting started with Jenkins
Getting started with JenkinsGetting started with Jenkins
Getting started with Jenkins
 
Ci jenkins maven svn
Ci jenkins maven svnCi jenkins maven svn
Ci jenkins maven svn
 
Jenkins CI presentation
Jenkins CI presentationJenkins CI presentation
Jenkins CI presentation
 
Jenkins CI
Jenkins CIJenkins CI
Jenkins CI
 
Introduction to Continuous Integration with Jenkins
Introduction to Continuous Integration with JenkinsIntroduction to Continuous Integration with Jenkins
Introduction to Continuous Integration with Jenkins
 
CONTINUOUS INTEGRATION WITH JENKINS AND GIT
CONTINUOUS INTEGRATION WITH JENKINS AND GITCONTINUOUS INTEGRATION WITH JENKINS AND GIT
CONTINUOUS INTEGRATION WITH JENKINS AND GIT
 
Yale Jenkins Show and Tell
Yale Jenkins Show and TellYale Jenkins Show and Tell
Yale Jenkins Show and Tell
 
Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners
 
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
Anatomy of a Continuous Integration and Delivery (CICD) PipelineAnatomy of a Continuous Integration and Delivery (CICD) Pipeline
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
 
Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSContinuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWS
 
Jenkins
JenkinsJenkins
Jenkins
 
Continuous Integration with Gitlab
Continuous Integration with GitlabContinuous Integration with Gitlab
Continuous Integration with Gitlab
 
Ecosistemas de Desarrollo Software - Automatización
Ecosistemas de Desarrollo Software - AutomatizaciónEcosistemas de Desarrollo Software - Automatización
Ecosistemas de Desarrollo Software - Automatización
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
03 - Continuous Integration
03 - Continuous Integration03 - Continuous Integration
03 - Continuous Integration
 

Similar to Introduction to Continuous Integration with Jenkins

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
 
How I failed to present on using DVCS to control archival metadata
How I failed to present on using DVCS to control archival metadataHow I failed to present on using DVCS to control archival metadata
How I failed to present on using DVCS to control archival metadata
Mark Matienzo
 
Lean Business Building & Google Glass workshop
Lean Business Building & Google Glass workshopLean Business Building & Google Glass workshop
Lean Business Building & Google Glass workshop
Jan Sauer
 

Similar to Introduction to Continuous Integration with Jenkins (20)

Introduction à l’intégration continue avec Jenkins
Introduction à l’intégration continue avec JenkinsIntroduction à l’intégration continue avec Jenkins
Introduction à l’intégration continue avec Jenkins
 
jhipster-geekle-gbloch
jhipster-geekle-gblochjhipster-geekle-gbloch
jhipster-geekle-gbloch
 
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
 
JHipster presentation by Gaetan Bloch
JHipster presentation by Gaetan BlochJHipster presentation by Gaetan Bloch
JHipster presentation by Gaetan Bloch
 
Modern Web Applications with Struts 2
Modern Web Applications with Struts 2Modern Web Applications with Struts 2
Modern Web Applications with Struts 2
 
Silos are for farmers
Silos are for farmersSilos are for farmers
Silos are for farmers
 
Git - the stupid content tracker
Git - the stupid content trackerGit - the stupid content tracker
Git - the stupid content tracker
 
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
 
Extending Gradle
Extending GradleExtending Gradle
Extending Gradle
 
georchestra SDI: Project Status Report
georchestra SDI: Project Status Reportgeorchestra SDI: Project Status Report
georchestra SDI: Project Status Report
 
Maximes Presentation For Rubyconf China 2009
Maximes Presentation For Rubyconf China 2009Maximes Presentation For Rubyconf China 2009
Maximes Presentation For Rubyconf China 2009
 
Project management software of your dreams
Project management software of your dreamsProject management software of your dreams
Project management software of your dreams
 
Responsive Design for Complex Websites (IXDA Munich)
Responsive Design for Complex Websites (IXDA Munich)Responsive Design for Complex Websites (IXDA Munich)
Responsive Design for Complex Websites (IXDA Munich)
 
How I failed to present on using DVCS to control archival metadata
How I failed to present on using DVCS to control archival metadataHow I failed to present on using DVCS to control archival metadata
How I failed to present on using DVCS to control archival metadata
 
Lean Business Building & Google Glass workshop
Lean Business Building & Google Glass workshopLean Business Building & Google Glass workshop
Lean Business Building & Google Glass workshop
 
The Journey Towards Continuous Integration
The Journey Towards Continuous IntegrationThe Journey Towards Continuous Integration
The Journey Towards Continuous Integration
 
Working Together Virtually
Working Together VirtuallyWorking Together Virtually
Working Together Virtually
 
Drools & jBPM Workshop London 2013
Drools & jBPM Workshop London 2013Drools & jBPM Workshop London 2013
Drools & jBPM Workshop London 2013
 
Agile service delivery In the UK’s public sector
Agile service delivery In the UK’s public sectorAgile service delivery In the UK’s public sector
Agile service delivery In the UK’s public sector
 
Getting Started with Angular 2
Getting Started with Angular 2Getting Started with Angular 2
Getting Started with Angular 2
 

More from Eric Hogue

More from 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
 

Recently uploaded

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
 

Recently uploaded (20)

Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
Design Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxDesign Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptx
 
Introduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxIntroduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptx
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
 
UiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overviewUiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overview
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
How to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cfHow to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cf
 
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)
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
 
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
 
ChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps Productivity
 
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
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
Decarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational PerformanceDecarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational Performance
 
Choreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software EngineeringChoreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software Engineering
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024
 

Introduction to Continuous Integration with Jenkins