Continuous Integration DCAEC12

22
Stephen D. Ritchie Managing Consultant Excella Consulting, Inc., 2300 Wilson Blvd, Suite 630, Arlington, VA 22201 703.840.8600 http://excella.com #DCAEC12 Continuous Integration: Blueprint, Toolbox, Master Craft Stephen D. Ritchie @RuthlessHelp Dec 7, 2012

description

DC Agile Engineering Conference 2012 -- Continuous Integration presentation.

Transcript of Continuous Integration DCAEC12

Page 1: Continuous Integration DCAEC12

Stephen D. Ritchie – Managing Consultant – Excella Consulting, Inc., 2300 Wilson Blvd, Suite 630, Arlington, VA 22201 – 703.840.8600 – http://excella.com

#DCAEC12

Continuous Integration:

Blueprint, Toolbox, Master Craft

Stephen D. Ritchie@RuthlessHelp

Dec 7, 2012

Page 2: Continuous Integration DCAEC12

Stephen D. Ritchie #DCAEC12

Live Tweet, Slides and Examples

• Twitter: @RuthlessHelp

#DCAEC12

• Slides:

http://www.slideshare.net/ruthlesshelp

• Code Samples:

http://github.com/ruthlesshelp

2

Page 3: Continuous Integration DCAEC12

Stephen D. Ritchie #DCAEC12

The Problem

SourceCode

1 23

3

Scott’sComputer

Susan’sComputer

You

1

2

3

Scott makes changes

Susan makes changes

You can’t build

Page 4: Continuous Integration DCAEC12

Stephen D. Ritchie #DCAEC12

What Went Wrong?

4

Conflicts

Missing Files

Breaking Changes

Page 5: Continuous Integration DCAEC12

Stephen D. Ritchie #DCAEC12 5

How do youfind

integrationissues?

Page 6: Continuous Integration DCAEC12

Stephen D. Ritchie #DCAEC12

Manual Integration

6

Build

Run Some Unit Tests

Perform Static Analysis

Clean + Rebuild All

Page 7: Continuous Integration DCAEC12

Stephen D. Ritchie #DCAEC12

Continuous Integration Blueprint

7

Page 8: Continuous Integration DCAEC12

Stephen D. Ritchie #DCAEC12

CI Server

SourceCode

8

Scott’sComputer

Susan’sComputer

You

CIServer

Page 9: Continuous Integration DCAEC12

Stephen D. Ritchie #DCAEC12

CI Server

9

Triggered by SCMand

Page 10: Continuous Integration DCAEC12

Stephen D. Ritchie #DCAEC12

CI – Per Commit Steps

10

1. Clean + Rebuild All

2. Run All Unit Tests

Coding Standards

3. AnalysisStatic Code Analysis

Page 11: Continuous Integration DCAEC12

Stephen D. Ritchie #DCAEC12

Continuous Integration Toolbox

11

Page 12: Continuous Integration DCAEC12

Stephen D. Ritchie #DCAEC12

CI Server – Jenkins

12

http://jenkins-ci.org/

Free

Open Source

Page 13: Continuous Integration DCAEC12

Stephen D. Ritchie #DCAEC12

CI Server – Cruise Control

13

http://cruisecontrol.sourceforge.net/

Free

Open Source

http://www.cruisecontrolnet.org/

Page 14: Continuous Integration DCAEC12

Stephen D. Ritchie #DCAEC12

CI Server – TeamCity

14

Commercial

Easy to Use

http://www.jetbrains.com/teamcity/

Page 15: Continuous Integration DCAEC12

Stephen D. Ritchie #DCAEC12 15

Perhaps an example would

be helpful

Page 16: Continuous Integration DCAEC12

Stephen D. Ritchie #DCAEC12

Continuous Integration Master Craft

16

Page 17: Continuous Integration DCAEC12

Stephen D. Ritchie #DCAEC12

The Master Craft

17

Unit TestingPlus

Code Coverage

Page 18: Continuous Integration DCAEC12

Stephen D. Ritchie #DCAEC12

The Master Craft

18

Integration Testing

System Testing

Acceptance Testing

Page 19: Continuous Integration DCAEC12

Stephen D. Ritchie #DCAEC12

The Master Craft

19

Code Quality

Metrics

Visualizations

Detections

Checks

Analysis

Page 20: Continuous Integration DCAEC12

Stephen D. Ritchie #DCAEC12

The Master Craft

20

ReportingAnd

Visibility

Page 21: Continuous Integration DCAEC12

Stephen D. Ritchie #DCAEC12

The Master Craft

21

PackagingAnd

Deployment

Page 22: Continuous Integration DCAEC12

Stephen D. Ritchie #DCAEC12

Stephen’s Contact Info

• Email: [email protected]

• LinkedIn:

http://www.linkedin.com/in/sritchie

22