SlideShare a Scribd company logo
Continuous IntegrationBetter building
What is Continuous Integration?CI is a software development practice invented to:Ease integrationSelf test buildsReduce bug build upIncrease automationGive greater project state visibilityAllow 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 verifiedby automatically kicking off a tested build
What’s the benefit?
Avoiding late bugsBy integrating continually you know about more bugs in code ahead of time rather than just before release
Creating a more cohesive teamEverybody integrates with everyone else frequentlyAvoid development ‘islands’Know about merging difficulties ahead of timeAvoid 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 visibilityEveryone (even non-developers!) can see the state of a project at any given time; now or in the pastGenerated reports for projects for things such as code test coverage, code style/warnings, change logs, bug checking etcKnow what made (and broke!) a particular version of a deployed release
Create deployable softwareSoftware should, as much as possible, workCI helps developers keep their software deployableWhich keeps release cycles shortWhich is good for businessStops “Well, it works on my machine”
Create better softwareCode is tested early and oftenReports can show progress in meeting coding standardsTest are done in parallel, not at the endNo integration pointsBuilds become a no-brainerDefects are identified earlierDefects are fixed when less costlyEasily repeatable testing
This is the cool dude that came up with it: Martin Fowlerhttp://www.martinfowler.com/articles/continuousIntegration.html
Martin Fowler’s 10 Principles of CIMaintain a single source repositoryAutomate the buildMake your build self testingEveryone commits all day, every dayEvery commit is built
Martin Fowler’s Principles cont…Keep the build fastTest in a clone of the production environmentMake it easy for anyone to get the latest executableEveryone can see what is happeningAutomate deployment
Maintaining a Single Source RepositoryA version control repository has to include ALL needed sources to buildAnd nothing elseCVS, SVN, Git, etc…Issue: external dependenciesKeep in repository, orDependency management with repository of referenced binaries, e.g. maven, ivy
Hang on, what’s in a build?
When to do a buildAt every check-inNot simply over night!Whenever a dependency changes
How to do a buildUsing a single build script Could use AntMavenMake…Should be able to be run from the command lineShould have no external dependency such as an IDE
When the build fails…Make sure it fails fastFix it immediately!The world will continue to turn
Code inspectionsTest coverage tools reports highlight where to focus testing effortsCloverCoberturaStatic Analysis tools read source code to check for best practices and identify weak spotsCheckstyleFindbugsCI helps you track these over timeMetrics can be established to ensure quality
Generating documentationCI can automatically generate documentation for every buildEnsuring it is always currentRemoves the burden from developersCode inspection reports add to documentation
CI Mantra
That’s it really

More Related Content

PDF
Intro to CI/CD using Docker
PPT
Continuous integration (light talk)
PDF
Continuous Integration: How I stopped guessing if that merge was bad
ODP
Continuous Integration and PHP
PPTX
Continuous Integration and Continuous Deployment in Enterprise scenario
PPTX
Bootstrapping Quality
PDF
Continuous integration with docker, buildbot and git
PPT
Continuous integration - main principles
Intro to CI/CD using Docker
Continuous integration (light talk)
Continuous Integration: How I stopped guessing if that merge was bad
Continuous Integration and PHP
Continuous Integration and Continuous Deployment in Enterprise scenario
Bootstrapping Quality
Continuous integration with docker, buildbot and git
Continuous integration - main principles

What's hot (20)

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

Viewers also liked (14)

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

Similar to Continuous Integration (20)

PDF
Introduction to Continuous Integration
PDF
Continuous integration
PDF
Flight East 2018 Presentation–Continuous Integration––An Overview
PPT
Continuous integration
ODP
Continuous integration by Halyna Levko
PDF
Continuous integration & Continuous Delivery @DeVz
PPT
Continuous Integration and Builds
PDF
Continuous integration - stability, reliability and speed in software develop...
PDF
Continuous Integration
PDF
Quickstart for continuous integration
PDF
Continuous Integration
PDF
Continuous integration (eng)
PPTX
Continuous integration
PPTX
Continuous Integration
PPTX
Continuous Integrations & Deployments
ODP
Buildbot introduction
PDF
Continuous Integration
PPTX
Continuous integration for se group meeting
PPT
Continuous Integration
Introduction to Continuous Integration
Continuous integration
Flight East 2018 Presentation–Continuous Integration––An Overview
Continuous integration
Continuous integration by Halyna Levko
Continuous integration & Continuous Delivery @DeVz
Continuous Integration and Builds
Continuous integration - stability, reliability and speed in software develop...
Continuous Integration
Quickstart for continuous integration
Continuous Integration
Continuous integration (eng)
Continuous integration
Continuous Integration
Continuous Integrations & Deployments
Buildbot introduction
Continuous Integration
Continuous integration for se group meeting
Continuous Integration

Continuous Integration

  • 2. What is Continuous Integration?CI is a software development practice invented to:Ease integrationSelf test buildsReduce bug build upIncrease automationGive greater project state visibilityAllow 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 verifiedby automatically kicking off a tested build
  • 5. Avoiding late bugsBy integrating continually you know about more bugs in code ahead of time rather than just before release
  • 6. Creating a more cohesive teamEverybody integrates with everyone else frequentlyAvoid development ‘islands’Know about merging difficulties ahead of timeAvoid 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 visibilityEveryone (even non-developers!) can see the state of a project at any given time; now or in the pastGenerated reports for projects for things such as code test coverage, code style/warnings, change logs, bug checking etcKnow what made (and broke!) a particular version of a deployed release
  • 8. Create deployable softwareSoftware should, as much as possible, workCI helps developers keep their software deployableWhich keeps release cycles shortWhich is good for businessStops “Well, it works on my machine”
  • 9. Create better softwareCode is tested early and oftenReports can show progress in meeting coding standardsTest are done in parallel, not at the endNo integration pointsBuilds become a no-brainerDefects are identified earlierDefects are fixed when less costlyEasily repeatable testing
  • 10. This is the cool dude that came up with it: Martin Fowlerhttp://www.martinfowler.com/articles/continuousIntegration.html
  • 11. Martin Fowler’s 10 Principles of CIMaintain a single source repositoryAutomate the buildMake your build self testingEveryone commits all day, every dayEvery commit is built
  • 12. Martin Fowler’s Principles cont…Keep the build fastTest in a clone of the production environmentMake it easy for anyone to get the latest executableEveryone can see what is happeningAutomate deployment
  • 13. Maintaining a Single Source RepositoryA version control repository has to include ALL needed sources to buildAnd nothing elseCVS, SVN, Git, etc…Issue: external dependenciesKeep in repository, orDependency management with repository of referenced binaries, e.g. maven, ivy
  • 14. Hang on, what’s in a build?
  • 15. When to do a buildAt every check-inNot simply over night!Whenever a dependency changes
  • 16. How to do a buildUsing a single build script Could use AntMavenMake…Should be able to be run from the command lineShould have no external dependency such as an IDE
  • 17. When the build fails…Make sure it fails fastFix it immediately!The world will continue to turn
  • 18. Code inspectionsTest coverage tools reports highlight where to focus testing effortsCloverCoberturaStatic Analysis tools read source code to check for best practices and identify weak spotsCheckstyleFindbugsCI helps you track these over timeMetrics can be established to ensure quality
  • 19. Generating documentationCI can automatically generate documentation for every buildEnsuring it is always currentRemoves the burden from developersCode inspection reports add to documentation