Paulo Caroli Agile Coach
[email protected] Twitter: @paulocaroli
CruiseControl: the open sourcethat changed the way we
develop software
Luiza Pagliari Developer
[email protected] Twitter: @lpagliari
Agenda
Practice HistoryCruise
Control
Practice HistoryCruise
Control
Motivation
Traditionally, different modules are developed by different teams/developers
In XP, any programmer can change any part of the code
Definition
Continuous Integration is a software development practice where members of a team integrate their work frequently…
… each integration is verified by an automated build …
… detect integration errors as quickly as possible…
… assumes a high degree of tests.
Demonstration
Continuous Integration Server
Source Repository
Developers
Solution: continually integrate and test throughout the project
Developers check out code into their private workspaces
Developers work on functionality and validate it by running unit tests and local build
Developer update code to avoid conflicts
Developers work on existing conflicts and validate them by running tests and local build
When done, they commit changes to the repository
The CI server monitors the repository andchecks out changes when they occur
The CI server builds the system and runs automated tests
The CI server releases deployable artefacts
The CI server assigns a build label to the version of the code that it just built
The CI server informs the team of the successful build and generates useful metrics
If the build or tests fail, the CI server alerts the team
The team fix the issue at the earliest opportunity
Continually integrate and test throughout the project
Practice HistoryCruise
Control
1996 … 1998 1999 2000 2001 2002 … 2006 … 2010
• C3 project• 4 Dev pairs (Kent, Martin, Ward…)• Smaltalk / Genstone• Manual Integration
– Integration server– Developer name on post-it– Red / Yellow / Green
1996 … 1998 1999 2000 2001 2002 … 2006 … 2010
• C2 wiki• XP is being born
1996 … 1998 1999 2000 2001 2002 … 2006 … 2010
• XP Explained book released• Project A
– Martin, Ward and TW– Java– Integration was a 2 week exercise
1996 … 1998 1999 2000 2001 2002 … 2006 … 2010
< Early 2000 >• Project A goes for XP
– 50 developers, many teams– Java / Star Team / before ant While (true) {
sleep upload? build test }
1996 … 1998 1999 2000 2001 2002 … 2006 … 2010
< Late 2000 >• Martin’s CI article• Project B • Repeat the CI automated idea• CruiseControl is born
1996 … 1998 1999 2000 2001 2002 … 2006 … 2010
• Project C, D … X• Connectors to many repositories• Many contributors
1996 … 1998 1999 2000 2001 2002 … 2006 … 2010
• CI practice really picking up• TW in a .Net project• CruiseControl.Net
1996 … 1998 1999 2000 2001 2002 … 2006 … 2010
• TW in a Ruby project• CruiseControl.rb
1996 … 1998 1999 2000 2001 2002 … 2006 … 2010
• This talk about CruiseControl history• Many good options!• Next generation of tools
1996 … 1998 1999 2000 2001 2002 … 2006 … 2010
Practice HistoryCruise
Control
Build Loop
Build Report
Results Dashboard
Dashboard
Build Indicators
Directly on computer...
... Or outside it
... Or outside it
CruiseControl Cool stats
The oldest running CI build (August 2000)
• From 2006 to 2010• 74% green builds
Last 5 months: 41,000+ downloads
Countries O.S.
1. US 10,526
2. China 7,637
3. India 3,154
…
10.Brazil 678
600,000+ downloads(21.5 TB) since 2001
Paulo Caroli Agile Coach
[email protected] Twitter: @paulocaroli
CruiseControl: the open sourcethat changed the way we
develop software
Luiza Pagliari Developer
[email protected] Twitter: @lpagliari
Questions?Thank you!
References (Google it!)
• XP Explained by Kent Beck• Continuous Integration by Martin Fowler • Continuous Delivery by Jez Humble and David
Farley• CruiseControl by the community• Bubble, Bubble, Build's In Trouble (lava lamp)
Top Related