Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Continuous Integration

1,342 views

Published on

Introduction of continious integration to our internal development team.

Published in: Technology, Business
  • Be the first to comment

Continuous Integration

  1. 1. 25 June, 2008<br />Continuous Integration<br />by Mel Gerats<br />
  2. 2. Definitionhttp://en.wikipedia.org/wiki/Continuous_integration<br />Continuous integration describes a set of software engineering practices that speed up the delivery of software by decreasing integration times<br />25 June, 2008<br />Continuous Integration, by Mel Gerats<br />2<br />
  3. 3. Maintain a Single Source Repository.<br />Simple: Usesourcecontrol<br />25 June, 2008<br />3<br />Continuous Integration, by Mel Gerats<br />
  4. 4. Automate the Build<br />Building shouldtakeoneaction at most!<br />Building shouldnottake YOUR time<br />=&gt; Build server<br /> - CruiseControl.net<br /> - Team System Build Server<br /> - Team City<br />25 June, 2008<br />4<br />Continuous Integration, by Mel Gerats<br />
  5. 5. Make Your Build Self-Testing<br />Tests shouldbe run everybuild<br />=&gt; Tests can have noeffects, orshould at least clean up.<br />25 June, 2008<br />5<br />Continuous Integration, by Mel Gerats<br />
  6. 6. Everyone Commits Every Day<br />Check in often!<br />Findproblemsearly<br />Mostlyforlargeprojects?<br />25 June, 2008<br />6<br />Continuous Integration, by Mel Gerats<br />
  7. 7. Every Commit Should Build the Mainline on an Integration Machine<br />Automatedbuildaftercheckin<br />Automated tests aftercheckin<br />25 June, 2008<br />7<br />Continuous Integration, by Mel Gerats<br />
  8. 8. Test in a Clone of the Production Environment<br />The code maybe fine, but the environment?<br />Dependencies<br />Versions<br />OS<br />…<br />25 June, 2008<br />8<br />Continuous Integration, by Mel Gerats<br />
  9. 9. Everyone can see what&apos;s happening<br />Checkin reports<br />Build reports<br />Test reports<br />Coverage reports<br />http://buildserver/ccnet<br />25 June, 2008<br />9<br />Continuous Integration, by Mel Gerats<br />
  10. 10. Automate Deployment<br />Successful build =&gt; deploy to staging<br />25 June, 2008<br />10<br />Continuous Integration, by Mel Gerats<br />
  11. 11. Overview<br />Maintain a Single Source Repository.<br />Automate the Build<br />Make Your Build Self-Testing<br />Everyone Commits Every Day<br />Every Commit Should Build the Mainline on an Integration Machine<br />Keep the Build Fast<br />Test in a Clone of the Production Environment<br />Make it Easy for Anyone to Get the Latest Executable<br />Everyone can see what&apos;s happening<br />Automate Deployment<br />25 June, 2008<br />11<br />Continuous Integration, by Mel Gerats<br />
  12. 12. Challenges<br />Bus factor<br />Dependencies<br />Brokenwindowsyndrome<br />25 June, 2008<br />12<br />Continuous Integration, by Mel Gerats<br />
  13. 13. Todo’s<br />Research/try out options<br /><ul><li>Now we useCruiseControl
  14. 14. Tom willtryTeamCity + FinalBuilder
  15. 15. Experiment with Team System</li></ul>25 June, 2008<br />13<br />Continuous Integration, by Mel Gerats<br />
  16. 16. Next steps<br />Automated unit tests<br />Reports<br />Automateddeployment<br />25 June, 2008<br />14<br />Continuous Integration, by Mel Gerats<br />
  17. 17. Resources<br />Martin Fowler on continuous integration<br />Ourbuildserver<br />CruiseControl<br />Teamcity<br />Team Foundation Build<br />25 June, 2008<br />15<br />Continuous Integration, by Mel Gerats<br />
  18. 18. 16<br />Continuous Integration, by Mel Gerats<br />25 June, 2008<br />

×