Your SlideShare is downloading. ×
ContinuousIntegrationBrown Bag by Clarence Bakirtzidis18th June 2013Wednesday, 19 June 13
OverviewWhat is CI?Benefits of CIHow to start doing CILive DemoTips for SuccessWednesday, 19 June 13
What is CI?Continuous Integration = CI"The aim of Continuous Integration is that thesoftware is in a working state all the...
What is CI? [cont.]With CI: Your software is proven to work withevery change (assuming sufficientlycomprehensive automated ...
Benefits of CIReduced integration time and costReduced delivery risksImproved and shorter feedback cyclesImproved team comm...
Benefits of CI [cont.]Having a comprehensive automated test suitesupports TDD (fast feedback) and refactoringEarly warning ...
Feedback / RadiatorsImage Sources:#1: http://www.flickr.com/photos/hanuska/5931613961/in/photostream/#2: http://fabiopereir...
How to start doing CIPre-requisites: Version Control, AutomatedBuild, Agreement of the team, CI Server(optional but highly...
How to start doing CIPut everything required to build and test yoursoftware in source controlStart building a CI server to...
DevelopLocalWorkstationWednesday, 19 June 13
BuildDevelopLocalWorkstationWednesday, 19 June 13
Mainline ServerBuildDevelopLocalWorkstationWednesday, 19 June 13
Mainline ServerBuildpullDevelopLocalWorkstationWednesday, 19 June 13
Mainline ServerBuildBuildpullDevelopLocalWorkstationWednesday, 19 June 13
Mainline ServerBuildBuildpullDevelopLocalWorkstationpushWednesday, 19 June 13
Mainline ServerBuildBuildpullDevelopLocalWorkstationBuildpushWednesday, 19 June 13
Mainline ServerBuildBuildpullDevelopLocalWorkstationBuildpush✔Done!Wednesday, 19 June 13
Mainline ServerBuildBuildpullDevelopLocalWorkstationBuildpush✔Done!Wednesday, 19 June 13
CI StagesImages from “Continuous Delivery” (book) by Jez Humble &David FarleyWednesday, 19 June 13
CI StagesCommit stageCompileUnit testAssembleCode analysissource codecommit testsbuild scriptsdeployable binariestest repo...
Manual StagesImage from “Continuous Delivery” (book) by Jez Humble &David FarleyWednesday, 19 June 13
Manual StagesLater stagesConfigure environmentDeploy and smoke testTear down on requestdeployment scriptsconfiguration datat...
But what about...Scheduled builds vs. build on every commit?Branching vs Mainline: Good or Evil?Changes that are not ready...
P1 P2G2 G3G1 G4P3 P4 P5G5 G6B1 B2G1G1P1P1B1P2B1P1-2G2G2P3G2P3B2P4B2G3P3 G3G3P4P4 P5P4-5G4G4 G5 G6P2Professor PlumReverend ...
P1 P2G2 G3G1 G4P3 P4 P5G5 G6B1 B2G1G1P1P1B1P2B1P1-2G2G2P3G2P3B2P4B2G3P3 G3G3P4P4 P5P4-5G4G4 G5 G6P2Professor PlumReverend ...
Continuous IntegrationFeature BranchWednesday, 19 June 13
FeatureBranchWednesday, 19 June 13
FeatureBranchReleaseBranchWednesday, 19 June 13
FeatureBranchReleaseBranchExperimentalBranchWednesday, 19 June 13
Live DemoLOADING, PLEASE WAIT...Wednesday, 19 June 13
Tips for SuccessCheckin regularly - Everyone commits to themainline every dayCreate a comprehensive automated test suiteKe...
Tips for Success[cont.]Agree on build hygiene and responsibilitiesDont checkin on a broken buildTake responsibility for al...
ReferencesContinuous IntegrationMartin Fowlerhttp://www.martinfowler.com/articles/continuousIntegration.htmlContinuous Del...
Next StepsBooksContinuous Delivery, Jez Humble & David FarleyContinuous Integration, Paul M. DuvallInternet Resources"Cont...
Questions?Clarence BakirtzidisTwitter: @clarenceb_ozEmail: clarenceb@gmail.comWednesday, 19 June 13
CreditsSlides 10, 14, 15, 16 - Tom Sulston(@tomsulston), ThoughtWorks, from hispresentationSlides 11, 12 - Images are from...
Upcoming SlideShare
Loading in...5
×

Continuous Integration Brown Bag

394

Published on

Slides from a brown bag session I ran on Continuous Integration.
Live demo uses this repo: https://bitbucket.org/clarenceb/cdtt-ci-brownbag

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
394
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Continuous Integration Brown Bag"

  1. 1. ContinuousIntegrationBrown Bag by Clarence Bakirtzidis18th June 2013Wednesday, 19 June 13
  2. 2. OverviewWhat is CI?Benefits of CIHow to start doing CILive DemoTips for SuccessWednesday, 19 June 13
  3. 3. What is CI?Continuous Integration = CI"The aim of Continuous Integration is that thesoftware is in a working state all the time" [1]What type of “software” are we talking about?CI helps avoid “integration hell”“Bring the pain forward”[1] Continuous Delivery (book), Jez Humble & David FarleyWednesday, 19 June 13
  4. 4. What is CI? [cont.]With CI: Your software is proven to work withevery change (assuming sufficientlycomprehensive automated test suite)Without CI: Your software is broken untilsomeone proves it works, usually during atesting or (typically late) integration stageWednesday, 19 June 13
  5. 5. Benefits of CIReduced integration time and costReduced delivery risksImproved and shorter feedback cyclesImproved team communicationImproved software qualityWednesday, 19 June 13
  6. 6. Benefits of CI [cont.]Having a comprehensive automated test suitesupports TDD (fast feedback) and refactoringEarly warning system for issuesVisibility of the health and productionreadiness of the software outside of the teamWednesday, 19 June 13
  7. 7. Feedback / RadiatorsImage Sources:#1: http://www.flickr.com/photos/hanuska/5931613961/in/photostream/#2: http://fabiopereira.me/blog/wp-content/uploads/2009/12/cibuildlightvscidashboardradiator.pngWednesday, 19 June 13
  8. 8. How to start doing CIPre-requisites: Version Control, AutomatedBuild, Agreement of the team, CI Server(optional but highly recommended)Start simple - automate build, add someautomated tests, incremental improvementsMake sure everyone understands the CIprocess, scripts and how to run themWednesday, 19 June 13
  9. 9. How to start doing CIPut everything required to build and test yoursoftware in source controlStart building a CI server to run your build,tests, package, etc, on every commitAdvanced CI: Build and Test Everything: Code+ Configuration + Infrastructure changesTypical day-to-day Developer CI scenario...Wednesday, 19 June 13
  10. 10. DevelopLocalWorkstationWednesday, 19 June 13
  11. 11. BuildDevelopLocalWorkstationWednesday, 19 June 13
  12. 12. Mainline ServerBuildDevelopLocalWorkstationWednesday, 19 June 13
  13. 13. Mainline ServerBuildpullDevelopLocalWorkstationWednesday, 19 June 13
  14. 14. Mainline ServerBuildBuildpullDevelopLocalWorkstationWednesday, 19 June 13
  15. 15. Mainline ServerBuildBuildpullDevelopLocalWorkstationpushWednesday, 19 June 13
  16. 16. Mainline ServerBuildBuildpullDevelopLocalWorkstationBuildpushWednesday, 19 June 13
  17. 17. Mainline ServerBuildBuildpullDevelopLocalWorkstationBuildpush✔Done!Wednesday, 19 June 13
  18. 18. Mainline ServerBuildBuildpullDevelopLocalWorkstationBuildpush✔Done!Wednesday, 19 June 13
  19. 19. CI StagesImages from “Continuous Delivery” (book) by Jez Humble &David FarleyWednesday, 19 June 13
  20. 20. CI StagesCommit stageCompileUnit testAssembleCode analysissource codecommit testsbuild scriptsdeployable binariestest reportsmetadataVersioncontrolArtifactrepositoryAcceptance test stageConfigure environmentDeploy and smoke testAcceptance testTear downacceptance testsdeployment scriptsconfiguration data test reportsmetadataVersioncontrolArtifactrepositorybinariesArtifactrepositoryImages from “Continuous Delivery” (book) by Jez Humble &David FarleyWednesday, 19 June 13
  21. 21. Manual StagesImage from “Continuous Delivery” (book) by Jez Humble &David FarleyWednesday, 19 June 13
  22. 22. Manual StagesLater stagesConfigure environmentDeploy and smoke testTear down on requestdeployment scriptsconfiguration datatest reportsmetadataVersioncontrolArtifactrepositorybinariesArtifactrepositoryImage from “Continuous Delivery” (book) by Jez Humble &David FarleyWednesday, 19 June 13
  23. 23. But what about...Scheduled builds vs. build on every commit?Branching vs Mainline: Good or Evil?Changes that are not ready for use?Off-the-shelf packages?Distributed teams?Large projects?Wednesday, 19 June 13
  24. 24. P1 P2G2 G3G1 G4P3 P4 P5G5 G6B1 B2G1G1P1P1B1P2B1P1-2G2G2P3G2P3B2P4B2G3P3 G3G3P4P4 P5P4-5G4G4 G5 G6P2Professor PlumReverend GreenMainlineContinuous IntegrationWednesday, 19 June 13
  25. 25. P1 P2G2 G3G1 G4P3 P4 P5G5 G6B1 B2G1G1P1P1B1P2B1P1-2G2G2P3G2P3B2P4B2G3P3 G3G3P4P4 P5P4-5G4G4 G5 G6P2Professor PlumReverend GreenMainlineP1 P2G2G1B1B1B1P1-2G1-2G3 G4P4B2P5G5 G6B2P3-4G3B2P3Professor PlumReverend GreenMainlineG1-6P1-5P1-5G1-6Continuous IntegrationFeature BranchWednesday, 19 June 13
  26. 26. Continuous IntegrationFeature BranchWednesday, 19 June 13
  27. 27. FeatureBranchWednesday, 19 June 13
  28. 28. FeatureBranchReleaseBranchWednesday, 19 June 13
  29. 29. FeatureBranchReleaseBranchExperimentalBranchWednesday, 19 June 13
  30. 30. Live DemoLOADING, PLEASE WAIT...Wednesday, 19 June 13
  31. 31. Tips for SuccessCheckin regularly - Everyone commits to themainline every dayCreate a comprehensive automated test suiteKeep the commit stage fastMake the build visible (dashboards, buildlights)Automate the build (run it on a CI server)Wednesday, 19 June 13
  32. 32. Tips for Success[cont.]Agree on build hygiene and responsibilitiesDont checkin on a broken buildTake responsibility for all breakages that resultfrom your changesEvery commit to mainline should beautomatically testedDont comment out failing testsWednesday, 19 June 13
  33. 33. ReferencesContinuous IntegrationMartin Fowlerhttp://www.martinfowler.com/articles/continuousIntegration.htmlContinuous DeliveryChapter 3 - Continuous Integration, Jez Humble and David Farley, C.2011 Pearson Education, Inc.Continuous IntegrationWikipediahttp://en.wikipedia.org/wiki/Continuous_integrationWednesday, 19 June 13
  34. 34. Next StepsBooksContinuous Delivery, Jez Humble & David FarleyContinuous Integration, Paul M. DuvallInternet Resources"Continuous Integration is an Attitude, Not a Tool" (http://www.jamesshore.com/Blog/Continuous-Integration-is-an-Attitude.html)Wednesday, 19 June 13
  35. 35. Questions?Clarence BakirtzidisTwitter: @clarenceb_ozEmail: clarenceb@gmail.comWednesday, 19 June 13
  36. 36. CreditsSlides 10, 14, 15, 16 - Tom Sulston(@tomsulston), ThoughtWorks, from hispresentationSlides 11, 12 - Images are from the“Continuous Delivery” book by Jez Humble &David FarelyOther photo credits are indicated on the slideswhere they are usedWednesday, 19 June 13

×