Continuous Integration: Blueprint, Toolbox, Master Craft

Preview:

DESCRIPTION

The practice of continuous integration (CI) has the ability to transform software development from a set of manual processes to a logical series of reproducible, automated processes. There are three concepts that are key to continuous integration; the blueprint, the toolbox, and the master craft. This session presents the CI lifecycle as a blueprint. You will see and understand the series of development processes that establish an effective, automated progression from source code to a packaged deliverable. You will learn about the CI server, which is the fundamental tool that initiates, performs, coordinates, and reports throughout the CI phases. The toolbox includes both the CI server and the combination of technologies that support CI. Continuous integration is a master craft of Agile engineering. To help you be effective with continuous integration, this talk demonstrates both the knowledge and skills needed to achieve the desired results of CI and to maximize its value.

Citation preview

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

Continuous Integration:Blueprint, Toolbox, Master Craft

Stephen D. Ritchie@RuthlessHelp

Feb 19, 2013

DC .NET Users Group (@DCDNUG)February 2013 Meeting

Stephen D. Ritchie

Live Tweet, Slides and Examples

• Twitter: @RuthlessHelp

• Slides: http://www.slideshare.net/ruthlesshelp

• Code Samples: http://github.com/ruthlesshelp

2

Stephen D. Ritchie

The Problem

SourceCode

1 23

3

Scott’sComputer

Susan’sComputerYou

1

2

3

Scott makes changes

Susan makes changes

You can’t build

Stephen D. Ritchie

What Went Wrong?

4

Conflicts

Missing Files

Breaking Changes

Stephen D. Ritchie 5

How do youfind

integrationissues?

Stephen D. Ritchie

Manual Integration

6

BuildRun Some Unit TestsPerform Static AnalysisClean + Rebuild All

Stephen D. Ritchie

Continuous Integration Blueprint

7

Stephen D. Ritchie

CI Server

SourceCode

8

Scott’sComputer

Susan’sComputerYou

CIServer

Stephen D. Ritchie

CI Server

9

Triggered by SCM

Automated Buildand

Stephen D. Ritchie

CI – Per Commit Steps

10

1. Clean + Rebuild All2. Run All Unit Tests

Coding Standards

3. AnalysisStatic Code Analysis

Stephen D. Ritchie

Continuous Integration Toolbox

11

Stephen D. Ritchie

CI Server – Jenkins

12

http://jenkins-ci.org/

FreeOpen Source

Stephen D. Ritchie

CI Server – Cruise Control

13

http://cruisecontrol.sourceforge.net/

FreeOpen Source

http://www.cruisecontrolnet.org/

Stephen D. Ritchie

CI Server – TeamCity

14

CommercialEasy to Use

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

Stephen D. Ritchie 15

Perhaps an example would

be helpful

Stephen D. Ritchie

Continuous Integration Master Craft

16

Stephen D. Ritchie

The Master Craft

17

Unit TestingPlus

Code Coverage

Stephen D. Ritchie

The Master Craft

18

Integration Testing

System Testing

Acceptance Testing

Stephen D. Ritchie

The Master Craft

19

Code Quality

Metrics

Visualizations

Detections

Checks

Analysis

Stephen D. Ritchie

The Master Craft

20

ReportingAnd

Visibility

Stephen D. Ritchie

The Master Craft

21

PackagingAnd

Deployment

Stephen D. Ritchie

Stephen’s Contact Info

• Email: stephen.ritchie@excella.com

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

22

Recommended