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

60
Paulo Caroli Agile Coach [email protected] Twitter: @paulocaroli ruiseControl: the open sourc that changed the way we develop software Luiza Pagliari Developer [email protected] Twitter: @lpagliari

description

the practice and the history of Continuous Integration and CruiseControl

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

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

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

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

Agenda

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

Practice HistoryCruise

Control

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

Practice HistoryCruise

Control

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

Motivation

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

Traditionally, different modules are developed by different teams/developers

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

In XP, any programmer can change any part of the code

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

Definition

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

Continuous Integration is a software development practice where members of a team integrate their work frequently…

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

… each integration is verified by an automated build …

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

… detect integration errors as quickly as possible…

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

… assumes a high degree of tests.

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

Demonstration

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

Continuous Integration Server

Source Repository

Developers

Solution: continually integrate and test throughout the project

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

Developers check out code into their private workspaces

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

Developers work on functionality and validate it by running unit tests and local build

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

Developer update code to avoid conflicts

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

Developers work on existing conflicts and validate them by running tests and local build

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

When done, they commit changes to the repository

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

The CI server monitors the repository andchecks out changes when they occur

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

The CI server builds the system and runs automated tests

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

The CI server releases deployable artefacts

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

The CI server assigns a build label to the version of the code that it just built

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

The CI server informs the team of the successful build and generates useful metrics

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

If the build or tests fail, the CI server alerts the team

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

The team fix the issue at the earliest opportunity

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

Continually integrate and test throughout the project

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

Practice HistoryCruise

Control

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

1996 … 1998 1999 2000 2001 2002 … 2006 … 2010

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

• 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

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

• C2 wiki• XP is being born

1996 … 1998 1999 2000 2001 2002 … 2006 … 2010

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

• 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

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

< 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

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

< Late 2000 >• Martin’s CI article• Project B • Repeat the CI automated idea• CruiseControl is born

1996 … 1998 1999 2000 2001 2002 … 2006 … 2010

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

• Project C, D … X• Connectors to many repositories• Many contributors

1996 … 1998 1999 2000 2001 2002 … 2006 … 2010

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

• CI practice really picking up• TW in a .Net project• CruiseControl.Net

1996 … 1998 1999 2000 2001 2002 … 2006 … 2010

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

• TW in a Ruby project• CruiseControl.rb

1996 … 1998 1999 2000 2001 2002 … 2006 … 2010

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

• This talk about CruiseControl history• Many good options!• Next generation of tools

1996 … 1998 1999 2000 2001 2002 … 2006 … 2010

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

Practice HistoryCruise

Control

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

Build Loop

Build Report

Results Dashboard

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

Dashboard

Page 43: FISL 2010: CruiseControl: the open source that changed the way we develop software
Page 44: FISL 2010: CruiseControl: the open source that changed the way we develop software
Page 45: FISL 2010: CruiseControl: the open source that changed the way we develop software
Page 46: FISL 2010: CruiseControl: the open source that changed the way we develop software

Build Indicators

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

Directly on computer...

Page 48: FISL 2010: CruiseControl: the open source that changed the way we develop software
Page 49: FISL 2010: CruiseControl: the open source that changed the way we develop software
Page 50: FISL 2010: CruiseControl: the open source that changed the way we develop software

... Or outside it

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

... Or outside it

Page 52: FISL 2010: CruiseControl: the open source that changed the way we develop software
Page 53: FISL 2010: CruiseControl: the open source that changed the way we develop software
Page 54: FISL 2010: CruiseControl: the open source that changed the way we develop software

CruiseControl Cool stats

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

The oldest running CI build (August 2000)

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

• From 2006 to 2010• 74% green builds

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

Last 5 months: 41,000+ downloads

Countries O.S.

1. US 10,526

2. China 7,637

3. India 3,154

10.Brazil 678

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

600,000+ downloads(21.5 TB) since 2001

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

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!

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

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)