CruiseControl: the open source<br />that changed the way we<br />develop software<br />Paulo CaroliAgile Coach<br />LuizaP...
Agenda<br />
Motivation<br />
Traditionally, different modules are developed by different teams/developers<br />
In XP, any programmer can change any part of the code<br />
Definition<br />
Continuous Integration is a software development practice where members of a team integrate their work frequently… <br />
… each integration is verified by an automated build  …<br />
… detect integration errors as quickly as possible…<br />
… assumes a high degree of tests. <br />
Demonstration<br />
Solution: continually integrate and <br />test throughout the project<br />Developers<br />Continuous Integration Server<b...
Developers check out code into their private workspaces<br />
Developers work on functionality and validate it by running unit tests and local build<br />
Developer update code to avoid conflicts<br />
Developers work on existing conflicts and validate them by running tests and local build<br />
When done, they commit changes to the repository<br />
The CI server monitors the repository and<br />checks out changes when they occur<br />
The CI server builds the system and runs automated tests<br />
The CI server releases deployable artefacts<br />
The CI server assigns a build label to the <br />version of the code that it just built<br />
The CI server informs the team of the successful build and generates useful metrics<br />
If the build or tests fail, the CI server alerts the team<br />
The team fix the issue at the earliest opportunity<br />
Continually integrate and test throughout the project<br />
C3 project<br />4 Dev pairs (Kent, Martin, Ward…)<br />Smaltalk / Genstone<br />Manual Integration<br />Integration server...
C2 wiki<br />XP is being born<br />
XP Explained book released<br />Project A<br />Martin, Ward and TW<br />Java<br />Integration was a 2 week exercise<br />
< Early 2000 ><br />Project A goes for XP<br />50 developers, many teams<br />Java / Star Team / before ant<br />    While...
< Late 2000 ><br />Martin’s CI article<br />Project B <br />Repeat the CI automated idea<br />CruiseControl is born<br />
Project C, D … X<br />Connectors to many repositories<br />Many contributors<br />
CI practice really picking up<br />TW in a .Net project<br />CruiseControl.Net<br />
TW in a Ruby project<br />CruiseControl.rb<br />
This talk about CruiseControl history<br />Many good options!<br />Next generation of tools<br />
Dashboard<br />
Build Indicators<br />
Directly on computer...<br />
... Or outside it<br />
... Or outside it<br />
CruiseControl<br />Cool stats<br />
The oldest running CI build <br />(August 2000)<br />
<ul><li>From 2006 to2010
 74% green builds</li></li></ul><li>Last 5 months: 41,000+ downloads<br />Countries<br />O.S.<br />1. US		10,526<br />2. C...
600,000+ downloads(21.5 TB) since 2001<br />
CruiseControl: the open source<br />that changed the way we<br />develop software<br />Questions?<br />Thank you!<br />Pau...
References (Google it!)<br />XP Explained by Kent Beck<br />Continuous Integration by Martin Fowler <br />Continuous Deliv...
Upcoming SlideShare
Loading in...5
×

FISL 2010: CruiseControl: the open source that changed the way we develop software

1,490

Published on

the practice and the history of Continuous Integration and CruiseControl

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
1,490
On Slideshare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
24
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

FISL 2010: CruiseControl: the open source that changed the way we develop software

  1. 1. CruiseControl: the open source<br />that changed the way we<br />develop software<br />Paulo CaroliAgile Coach<br />LuizaPagliariDeveloper<br />pcaroli@thoughtworks.com<br />Twitter: @paulocaroli<br />lpagliar@thoughtworks.com<br />Twitter: @lpagliari<br />
  2. 2. Agenda<br />
  3. 3.
  4. 4.
  5. 5. Motivation<br />
  6. 6. Traditionally, different modules are developed by different teams/developers<br />
  7. 7. In XP, any programmer can change any part of the code<br />
  8. 8. Definition<br />
  9. 9. Continuous Integration is a software development practice where members of a team integrate their work frequently… <br />
  10. 10. … each integration is verified by an automated build …<br />
  11. 11. … detect integration errors as quickly as possible…<br />
  12. 12. … assumes a high degree of tests. <br />
  13. 13. Demonstration<br />
  14. 14. Solution: continually integrate and <br />test throughout the project<br />Developers<br />Continuous Integration Server<br />Source Repository<br />
  15. 15. Developers check out code into their private workspaces<br />
  16. 16. Developers work on functionality and validate it by running unit tests and local build<br />
  17. 17. Developer update code to avoid conflicts<br />
  18. 18. Developers work on existing conflicts and validate them by running tests and local build<br />
  19. 19. When done, they commit changes to the repository<br />
  20. 20. The CI server monitors the repository and<br />checks out changes when they occur<br />
  21. 21. The CI server builds the system and runs automated tests<br />
  22. 22. The CI server releases deployable artefacts<br />
  23. 23. The CI server assigns a build label to the <br />version of the code that it just built<br />
  24. 24. The CI server informs the team of the successful build and generates useful metrics<br />
  25. 25. If the build or tests fail, the CI server alerts the team<br />
  26. 26. The team fix the issue at the earliest opportunity<br />
  27. 27. Continually integrate and test throughout the project<br />
  28. 28.
  29. 29.
  30. 30. C3 project<br />4 Dev pairs (Kent, Martin, Ward…)<br />Smaltalk / Genstone<br />Manual Integration<br />Integration server<br />Developer name on post-it<br />Red / Yellow / Green<br />
  31. 31. C2 wiki<br />XP is being born<br />
  32. 32. XP Explained book released<br />Project A<br />Martin, Ward and TW<br />Java<br />Integration was a 2 week exercise<br />
  33. 33. < Early 2000 ><br />Project A goes for XP<br />50 developers, many teams<br />Java / Star Team / before ant<br /> While (true) {<br /> sleep<br /> upload?<br /> build<br /> test<br /> }<br />
  34. 34. < Late 2000 ><br />Martin’s CI article<br />Project B <br />Repeat the CI automated idea<br />CruiseControl is born<br />
  35. 35. Project C, D … X<br />Connectors to many repositories<br />Many contributors<br />
  36. 36. CI practice really picking up<br />TW in a .Net project<br />CruiseControl.Net<br />
  37. 37. TW in a Ruby project<br />CruiseControl.rb<br />
  38. 38. This talk about CruiseControl history<br />Many good options!<br />Next generation of tools<br />
  39. 39.
  40. 40.
  41. 41.
  42. 42. Dashboard<br />
  43. 43.
  44. 44.
  45. 45.
  46. 46. Build Indicators<br />
  47. 47. Directly on computer...<br />
  48. 48.
  49. 49.
  50. 50. ... Or outside it<br />
  51. 51. ... Or outside it<br />
  52. 52.
  53. 53.
  54. 54. CruiseControl<br />Cool stats<br />
  55. 55. The oldest running CI build <br />(August 2000)<br />
  56. 56. <ul><li>From 2006 to2010
  57. 57. 74% green builds</li></li></ul><li>Last 5 months: 41,000+ downloads<br />Countries<br />O.S.<br />1. US 10,526<br />2. China 7,637<br />3. India 3,154<br />…<br />10.Brazil 678<br />
  58. 58. 600,000+ downloads(21.5 TB) since 2001<br />
  59. 59. CruiseControl: the open source<br />that changed the way we<br />develop software<br />Questions?<br />Thank you!<br />Paulo CaroliAgile Coach<br />LuizaPagliariDeveloper<br />pcaroli@thoughtworks.com<br />Twitter: @paulocaroli<br />lpagliar@thoughtworks.com<br />Twitter: @lpagliari<br />
  60. 60. References (Google it!)<br />XP Explained by Kent Beck<br />Continuous Integration by Martin Fowler <br />Continuous Delivery by Jez Humble and David Farley<br />CruiseControl by the community<br />Bubble, Bubble, Build's In Trouble (lava lamp)<br />
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×