Continuous Integration

1,310 views

Published on

Introduction of continious integration to our internal development team.

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

No Downloads
Views
Total views
1,310
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
62
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

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 />

×