SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Continuous Integration Better building
What is Continuous Integration? CI is a software development practice invented to: Ease integration Self test builds Reduce bug build up Increase automation Give greater project state visibility Allow developers to concentrate on coding
How is this achieved? It’s achieved by continually integrating (in other words checking in with the main branchfrequently) and then having every integration verified by automatically kicking off a tested build
What’s the benefit?
Avoiding late bugs By integrating continually you know about more bugs in code ahead of time rather than just before release
Creating a more cohesive team Everybody integrates with everyone else frequently Avoid development ‘islands’ Know about merging difficulties ahead of time Avoid people saying “When did we decide to upgrade that jar to 2.0-alpha pre-release?” “I thought you fixed that months ago”
Enhancing project visibility Everyone (even non-developers!) can see the state of a project at any given time; now or in the past Generated reports for projects for things such as code test coverage, code style/warnings, change logs, bug checking etc Know what made (and broke!) a particular version of a deployed release
Create deployable software Software should, as much as possible, work CI helps developers keep their software deployable Which keeps release cycles short Which is good for business Stops “Well, it works on my machine”
Create better software Code is tested early and often Reports can show progress in meeting coding standards Test are done in parallel, not at the end No integration points Builds become a no-brainer Defects are identified earlier Defects are fixed when less costly Easily repeatable testing
This is the cool dude that came up with it: Martin Fowler http://www.martinfowler.com/articles/continuousIntegration.html
Martin Fowler’s 10 Principles of CI Maintain a single source repository Automate the build Make your build self testing Everyone commits all day, every day Every commit is built
Martin Fowler’s Principles cont… Keep the build fast Test in a clone of the production environment Make it easy for anyone to get the latest executable Everyone can see what is happening Automate deployment
Maintaining a Single Source Repository A version control repository has to include ALL needed sources to build And nothing else CVS, SVN, Git, etc… Issue: external dependencies Keep in repository, or Dependency management with repository of referenced binaries, e.g. maven, ivy
Hang on, what’s in a build?
When to do a build At every check-in Not simply over night! Whenever a dependency changes
How to do a build Using a single build script  Could use  Ant Maven Make … Should be able to be run from the command line Should have no external dependency such as an IDE
When the build fails… Make sure it fails fast Fix it immediately! The world will continue to turn
Code inspections Test coverage tools reports highlight where to focus testing efforts Clover Cobertura Static Analysis tools read source code to check for best practices and identify weak spots Checkstyle Findbugs CI helps you track these over time Metrics can be established to ensure quality
Generating documentation CI can automatically generate documentation for every build Ensuring it is always current Removes the burden from developers Code inspection reports add to documentation
CI Mantra
That’s it really

Weitere ähnliche Inhalte

Was ist angesagt?

Intro to Continuous Integration
Intro to Continuous IntegrationIntro to Continuous Integration
Intro to Continuous IntegrationTal Mor (Moshayov)
 
Continuous integration and delivery
Continuous integration and deliveryContinuous integration and delivery
Continuous integration and deliveryDanilo Pianini
 
Mobile web application
Mobile web applicationMobile web application
Mobile web application偉格 高
 
Continous integration
Continous integrationContinous integration
Continous integrationJeremy Wilken
 
Continuous delivery applied
Continuous delivery appliedContinuous delivery applied
Continuous delivery appliedMike McGarr
 
Practical DevOps & Continuous Delivery – A Webinar to learn in depth on DevO...
Practical DevOps & Continuous Delivery –  A Webinar to learn in depth on DevO...Practical DevOps & Continuous Delivery –  A Webinar to learn in depth on DevO...
Practical DevOps & Continuous Delivery – A Webinar to learn in depth on DevO...Hugo Messer
 
Continous Integration: A Case Study
Continous Integration: A Case StudyContinous Integration: A Case Study
Continous Integration: A Case StudyTalentica Software
 
DevOps Training - Ho Chi Minh City
DevOps Training - Ho Chi Minh CityDevOps Training - Ho Chi Minh City
DevOps Training - Ho Chi Minh CityChristian Trabold
 
Hands Spring Security 4.1
Hands Spring Security 4.1Hands Spring Security 4.1
Hands Spring Security 4.1robwinch
 
TiCalabash and TiMocha: The keys to Better & More Stable Titanium Apps
TiCalabash and TiMocha: The keys to Better & More Stable Titanium AppsTiCalabash and TiMocha: The keys to Better & More Stable Titanium Apps
TiCalabash and TiMocha: The keys to Better & More Stable Titanium AppsAndrew McElroy
 
Continuous Integration for Titanium
Continuous Integration for TitaniumContinuous Integration for Titanium
Continuous Integration for TitaniumDenver Sessink
 
Stanislav Khorunzhyi, "Front-end it like a PRO"
Stanislav Khorunzhyi, "Front-end it like a PRO"Stanislav Khorunzhyi, "Front-end it like a PRO"
Stanislav Khorunzhyi, "Front-end it like a PRO"Sigma Software
 
Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration Amazon Web Services
 
The DevOps Tool Kit: Building the Software Supply Chain
The DevOps Tool Kit: Building the Software Supply ChainThe DevOps Tool Kit: Building the Software Supply Chain
The DevOps Tool Kit: Building the Software Supply ChainMark Miller
 
Who let the robot out? - Building high quality software with Continuous Integ...
Who let the robot out? - Building high quality software with Continuous Integ...Who let the robot out? - Building high quality software with Continuous Integ...
Who let the robot out? - Building high quality software with Continuous Integ...Timo Stollenwerk
 
Lets talk about CI CD Pipeline in Agile
Lets talk about CI CD Pipeline in Agile Lets talk about CI CD Pipeline in Agile
Lets talk about CI CD Pipeline in Agile Poonam Panday
 
Using Jenkins with iOS projects
Using Jenkins with iOS projectsUsing Jenkins with iOS projects
Using Jenkins with iOS projectsAppsDojo
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous IntegrationJoseph Wang
 
Continuous integration CloudParty 21 may 2014 - Milan
Continuous integration CloudParty 21 may 2014 - MilanContinuous integration CloudParty 21 may 2014 - Milan
Continuous integration CloudParty 21 may 2014 - MilanSimone Pasquini
 

Was ist angesagt? (20)

Intro to Continuous Integration
Intro to Continuous IntegrationIntro to Continuous Integration
Intro to Continuous Integration
 
Continuous integration and delivery
Continuous integration and deliveryContinuous integration and delivery
Continuous integration and delivery
 
Mobile web application
Mobile web applicationMobile web application
Mobile web application
 
Continous integration
Continous integrationContinous integration
Continous integration
 
Continuous delivery applied
Continuous delivery appliedContinuous delivery applied
Continuous delivery applied
 
Practical DevOps & Continuous Delivery – A Webinar to learn in depth on DevO...
Practical DevOps & Continuous Delivery –  A Webinar to learn in depth on DevO...Practical DevOps & Continuous Delivery –  A Webinar to learn in depth on DevO...
Practical DevOps & Continuous Delivery – A Webinar to learn in depth on DevO...
 
Continous Integration: A Case Study
Continous Integration: A Case StudyContinous Integration: A Case Study
Continous Integration: A Case Study
 
Buildbot
BuildbotBuildbot
Buildbot
 
DevOps Training - Ho Chi Minh City
DevOps Training - Ho Chi Minh CityDevOps Training - Ho Chi Minh City
DevOps Training - Ho Chi Minh City
 
Hands Spring Security 4.1
Hands Spring Security 4.1Hands Spring Security 4.1
Hands Spring Security 4.1
 
TiCalabash and TiMocha: The keys to Better & More Stable Titanium Apps
TiCalabash and TiMocha: The keys to Better & More Stable Titanium AppsTiCalabash and TiMocha: The keys to Better & More Stable Titanium Apps
TiCalabash and TiMocha: The keys to Better & More Stable Titanium Apps
 
Continuous Integration for Titanium
Continuous Integration for TitaniumContinuous Integration for Titanium
Continuous Integration for Titanium
 
Stanislav Khorunzhyi, "Front-end it like a PRO"
Stanislav Khorunzhyi, "Front-end it like a PRO"Stanislav Khorunzhyi, "Front-end it like a PRO"
Stanislav Khorunzhyi, "Front-end it like a PRO"
 
Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration
 
The DevOps Tool Kit: Building the Software Supply Chain
The DevOps Tool Kit: Building the Software Supply ChainThe DevOps Tool Kit: Building the Software Supply Chain
The DevOps Tool Kit: Building the Software Supply Chain
 
Who let the robot out? - Building high quality software with Continuous Integ...
Who let the robot out? - Building high quality software with Continuous Integ...Who let the robot out? - Building high quality software with Continuous Integ...
Who let the robot out? - Building high quality software with Continuous Integ...
 
Lets talk about CI CD Pipeline in Agile
Lets talk about CI CD Pipeline in Agile Lets talk about CI CD Pipeline in Agile
Lets talk about CI CD Pipeline in Agile
 
Using Jenkins with iOS projects
Using Jenkins with iOS projectsUsing Jenkins with iOS projects
Using Jenkins with iOS projects
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Continuous integration CloudParty 21 may 2014 - Milan
Continuous integration CloudParty 21 may 2014 - MilanContinuous integration CloudParty 21 may 2014 - Milan
Continuous integration CloudParty 21 may 2014 - Milan
 

Andere mochten auch

Os vroeger en_nu_oudheid
Os vroeger en_nu_oudheidOs vroeger en_nu_oudheid
Os vroeger en_nu_oudheidguestb7f69d
 
Inaugurazione corso serale 2010 2011 pb
Inaugurazione corso serale 2010 2011 pbInaugurazione corso serale 2010 2011 pb
Inaugurazione corso serale 2010 2011 pbbarbelkarlsruhe
 
Prezentare 12 mai 2010 conferinta aquaserv extinsa foto buna
Prezentare 12 mai 2010 conferinta aquaserv extinsa foto bunaPrezentare 12 mai 2010 conferinta aquaserv extinsa foto buna
Prezentare 12 mai 2010 conferinta aquaserv extinsa foto bunaorbitalinteractive
 
Marketing 360 stopni personalizowane interakcje w czasie rzeczywistym
Marketing 360 stopni personalizowane interakcje w czasie rzeczywistymMarketing 360 stopni personalizowane interakcje w czasie rzeczywistym
Marketing 360 stopni personalizowane interakcje w czasie rzeczywistymEwelina Ciach
 
Designer salwar kameez_online
Designer salwar kameez_onlineDesigner salwar kameez_online
Designer salwar kameez_onlineChrisPerez
 
Protocoles en Internet
Protocoles en InternetProtocoles en Internet
Protocoles en InternetMiguel Suarez
 
Безусловная любовь к ребенку. Материалы семинара Sunrise Montessori school
Безусловная любовь к ребенку. Материалы семинара Sunrise Montessori schoolБезусловная любовь к ребенку. Материалы семинара Sunrise Montessori school
Безусловная любовь к ребенку. Материалы семинара Sunrise Montessori schoolSunrise Montessori school
 
Critical Mission Support Achieved through Custom Procurement Solutions
Critical Mission Support Achieved through Custom Procurement SolutionsCritical Mission Support Achieved through Custom Procurement Solutions
Critical Mission Support Achieved through Custom Procurement SolutionsMulti Service
 
Quantum UI & Workflow for Essex
Quantum UI & Workflow for EssexQuantum UI & Workflow for Essex
Quantum UI & Workflow for EssexSomik Behera
 
힘이 필요합니다
힘이 필요합니다힘이 필요합니다
힘이 필요합니다Taeho Kim
 

Andere mochten auch (14)

Impresionante documento
Impresionante documentoImpresionante documento
Impresionante documento
 
Os vroeger en_nu_oudheid
Os vroeger en_nu_oudheidOs vroeger en_nu_oudheid
Os vroeger en_nu_oudheid
 
Inaugurazione corso serale 2010 2011 pb
Inaugurazione corso serale 2010 2011 pbInaugurazione corso serale 2010 2011 pb
Inaugurazione corso serale 2010 2011 pb
 
Prezentare 12 mai 2010 conferinta aquaserv extinsa foto buna
Prezentare 12 mai 2010 conferinta aquaserv extinsa foto bunaPrezentare 12 mai 2010 conferinta aquaserv extinsa foto buna
Prezentare 12 mai 2010 conferinta aquaserv extinsa foto buna
 
Marketing 360 stopni personalizowane interakcje w czasie rzeczywistym
Marketing 360 stopni personalizowane interakcje w czasie rzeczywistymMarketing 360 stopni personalizowane interakcje w czasie rzeczywistym
Marketing 360 stopni personalizowane interakcje w czasie rzeczywistym
 
Supply chain master
Supply chain masterSupply chain master
Supply chain master
 
Designer salwar kameez_online
Designer salwar kameez_onlineDesigner salwar kameez_online
Designer salwar kameez_online
 
Protocoles en Internet
Protocoles en InternetProtocoles en Internet
Protocoles en Internet
 
Internet siglo 21
Internet siglo 21Internet siglo 21
Internet siglo 21
 
Безусловная любовь к ребенку. Материалы семинара Sunrise Montessori school
Безусловная любовь к ребенку. Материалы семинара Sunrise Montessori schoolБезусловная любовь к ребенку. Материалы семинара Sunrise Montessori school
Безусловная любовь к ребенку. Материалы семинара Sunrise Montessori school
 
Critical Mission Support Achieved through Custom Procurement Solutions
Critical Mission Support Achieved through Custom Procurement SolutionsCritical Mission Support Achieved through Custom Procurement Solutions
Critical Mission Support Achieved through Custom Procurement Solutions
 
Quantum UI & Workflow for Essex
Quantum UI & Workflow for EssexQuantum UI & Workflow for Essex
Quantum UI & Workflow for Essex
 
Mobile malware
Mobile malwareMobile malware
Mobile malware
 
힘이 필요합니다
힘이 필요합니다힘이 필요합니다
힘이 필요합니다
 

Ähnlich wie Continuous Integration

Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...eleksdev
 
Presentation 1 open source tools in continuous integration environment v1.0
Presentation 1   open source tools in continuous integration environment v1.0Presentation 1   open source tools in continuous integration environment v1.0
Presentation 1 open source tools in continuous integration environment v1.0Jasmine Conseil
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integrationdrluckyspin
 
Hudson
HudsonHudson
Hudson8x8
 
Continuous integration
Continuous integrationContinuous integration
Continuous integrationAbhay Kumar
 
Part 2 improving your software development v1.0
Part 2   improving your software development v1.0Part 2   improving your software development v1.0
Part 2 improving your software development v1.0Jasmine Conseil
 
Continuous Integration: A Case Study
Continuous Integration: A Case StudyContinuous Integration: A Case Study
Continuous Integration: A Case StudyIndicThreads
 
Continuous Integration - What even is it?
Continuous Integration - What even is it?Continuous Integration - What even is it?
Continuous Integration - What even is it?Rob Jacoby
 
Using Continuous Integration To Ensure Project Health New
Using Continuous Integration To Ensure Project Health NewUsing Continuous Integration To Ensure Project Health New
Using Continuous Integration To Ensure Project Health Newbartlowe
 
SE2018_Lec-22_-Continuous-Integration-Tools
SE2018_Lec-22_-Continuous-Integration-ToolsSE2018_Lec-22_-Continuous-Integration-Tools
SE2018_Lec-22_-Continuous-Integration-ToolsAmr E. Mohamed
 
Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins
Louisville Software Engineering Meet Up: Continuous Integration Using JenkinsLouisville Software Engineering Meet Up: Continuous Integration Using Jenkins
Louisville Software Engineering Meet Up: Continuous Integration Using JenkinsJames Strong
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integrationrouanw
 
Continuous deployment steve povilaitis
Continuous deployment   steve povilaitisContinuous deployment   steve povilaitis
Continuous deployment steve povilaitisSteve Povilaitis
 
Let’s start Continuous Integration with jenkins
Let’s start Continuous Integration with jenkinsLet’s start Continuous Integration with jenkins
Let’s start Continuous Integration with jenkinsTomohide Kakeya
 
CI and CD with Jenkins
CI and CD with JenkinsCI and CD with Jenkins
CI and CD with JenkinsMartin Málek
 

Ähnlich wie Continuous Integration (20)

Continuous Everything
Continuous EverythingContinuous Everything
Continuous Everything
 
Continuous Everything v2.0
Continuous Everything v2.0Continuous Everything v2.0
Continuous Everything v2.0
 
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
 
Presentation 1 open source tools in continuous integration environment v1.0
Presentation 1   open source tools in continuous integration environment v1.0Presentation 1   open source tools in continuous integration environment v1.0
Presentation 1 open source tools in continuous integration environment v1.0
 
CICD_1670665418.pdf
CICD_1670665418.pdfCICD_1670665418.pdf
CICD_1670665418.pdf
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Hudson
HudsonHudson
Hudson
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
Part 2 improving your software development v1.0
Part 2   improving your software development v1.0Part 2   improving your software development v1.0
Part 2 improving your software development v1.0
 
Continuous Integration: A Case Study
Continuous Integration: A Case StudyContinuous Integration: A Case Study
Continuous Integration: A Case Study
 
Continuous Integration - What even is it?
Continuous Integration - What even is it?Continuous Integration - What even is it?
Continuous Integration - What even is it?
 
Using Continuous Integration To Ensure Project Health New
Using Continuous Integration To Ensure Project Health NewUsing Continuous Integration To Ensure Project Health New
Using Continuous Integration To Ensure Project Health New
 
Continuous Integration vs Continuous Delivery vs Continuous Deployment
Continuous Integration vs Continuous Delivery vs Continuous Deployment Continuous Integration vs Continuous Delivery vs Continuous Deployment
Continuous Integration vs Continuous Delivery vs Continuous Deployment
 
SE2018_Lec-22_-Continuous-Integration-Tools
SE2018_Lec-22_-Continuous-Integration-ToolsSE2018_Lec-22_-Continuous-Integration-Tools
SE2018_Lec-22_-Continuous-Integration-Tools
 
Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins
Louisville Software Engineering Meet Up: Continuous Integration Using JenkinsLouisville Software Engineering Meet Up: Continuous Integration Using Jenkins
Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Continuous deployment steve povilaitis
Continuous deployment   steve povilaitisContinuous deployment   steve povilaitis
Continuous deployment steve povilaitis
 
Let’s start Continuous Integration with jenkins
Let’s start Continuous Integration with jenkinsLet’s start Continuous Integration with jenkins
Let’s start Continuous Integration with jenkins
 
CI and CD with Jenkins
CI and CD with JenkinsCI and CD with Jenkins
CI and CD with Jenkins
 
Contineous integration
Contineous integrationContineous integration
Contineous integration
 

Continuous Integration

  • 2. What is Continuous Integration? CI is a software development practice invented to: Ease integration Self test builds Reduce bug build up Increase automation Give greater project state visibility Allow developers to concentrate on coding
  • 3. How is this achieved? It’s achieved by continually integrating (in other words checking in with the main branchfrequently) and then having every integration verified by automatically kicking off a tested build
  • 5. Avoiding late bugs By integrating continually you know about more bugs in code ahead of time rather than just before release
  • 6. Creating a more cohesive team Everybody integrates with everyone else frequently Avoid development ‘islands’ Know about merging difficulties ahead of time Avoid people saying “When did we decide to upgrade that jar to 2.0-alpha pre-release?” “I thought you fixed that months ago”
  • 7. Enhancing project visibility Everyone (even non-developers!) can see the state of a project at any given time; now or in the past Generated reports for projects for things such as code test coverage, code style/warnings, change logs, bug checking etc Know what made (and broke!) a particular version of a deployed release
  • 8. Create deployable software Software should, as much as possible, work CI helps developers keep their software deployable Which keeps release cycles short Which is good for business Stops “Well, it works on my machine”
  • 9. Create better software Code is tested early and often Reports can show progress in meeting coding standards Test are done in parallel, not at the end No integration points Builds become a no-brainer Defects are identified earlier Defects are fixed when less costly Easily repeatable testing
  • 10. This is the cool dude that came up with it: Martin Fowler http://www.martinfowler.com/articles/continuousIntegration.html
  • 11. Martin Fowler’s 10 Principles of CI Maintain a single source repository Automate the build Make your build self testing Everyone commits all day, every day Every commit is built
  • 12. Martin Fowler’s Principles cont… Keep the build fast Test in a clone of the production environment Make it easy for anyone to get the latest executable Everyone can see what is happening Automate deployment
  • 13. Maintaining a Single Source Repository A version control repository has to include ALL needed sources to build And nothing else CVS, SVN, Git, etc… Issue: external dependencies Keep in repository, or Dependency management with repository of referenced binaries, e.g. maven, ivy
  • 14. Hang on, what’s in a build?
  • 15. When to do a build At every check-in Not simply over night! Whenever a dependency changes
  • 16. How to do a build Using a single build script Could use Ant Maven Make … Should be able to be run from the command line Should have no external dependency such as an IDE
  • 17. When the build fails… Make sure it fails fast Fix it immediately! The world will continue to turn
  • 18. Code inspections Test coverage tools reports highlight where to focus testing efforts Clover Cobertura Static Analysis tools read source code to check for best practices and identify weak spots Checkstyle Findbugs CI helps you track these over time Metrics can be established to ensure quality
  • 19. Generating documentation CI can automatically generate documentation for every build Ensuring it is always current Removes the burden from developers Code inspection reports add to documentation