16
www.orbitone.com Raas van Gaverestraat 83 B-9000 GENT, Belgium E-mail [email protected] Website www.orbitone.com Tel. +32 9 265 74 20 Fax +32 9 265 74 10 VAT BE 456.457.353 Bank 442-7059001-50 (KBC) 25 June, 2008 Continuous Integration by Mel Gerats

Continuous Integration

Embed Size (px)

DESCRIPTION

Introduction of continious integration to our internal development team.

Citation preview

Page 1: Continuous Integration

www.orbitone.com

Raas van Gaverestraat 83B-9000 GENT, Belgium E-mail [email protected] Website www.orbitone.com

Tel. +32 9 265 74 20Fax +32 9 265 74 10VAT BE 456.457.353Bank 442-7059001-50 (KBC)

25 June, 2008 Continuous Integrationby Mel Gerats

Page 2: Continuous Integration

Continuous Integration, by Mel Gerats2

Definitionhttp://en.wikipedia.org/wiki/Continuous_integration

Continuous integration describes a set of software engineering practices that speed up the delivery of software by decreasing integration times

25 June, 2008

Page 3: Continuous Integration

Continuous Integration, by Mel Gerats3

Maintain a Single Source Repository.

Simple: Use source control

25 June, 2008

Page 4: Continuous Integration

Continuous Integration, by Mel Gerats4

Automate the Build

Building should take one action at most! Building should not take YOUR time=> Build server

- CruiseControl.net- Team System Build Server- Team City

25 June, 2008

Page 5: Continuous Integration

Continuous Integration, by Mel Gerats5

Make Your Build Self-Testing

Tests should be run every build=> Tests can have no effects, or should at least clean up.

25 June, 2008

Page 6: Continuous Integration

Continuous Integration, by Mel Gerats6

Everyone Commits Every Day

Check in often! Find problems early Mostly for large projects?

25 June, 2008

Page 7: Continuous Integration

Continuous Integration, by Mel Gerats7

Every Commit Should Build the Mainline on an Integration Machine

Automated build after checkin Automated tests after checkin

25 June, 2008

Page 8: Continuous Integration

Continuous Integration, by Mel Gerats8

Test in a Clone of the Production Environment

The code may be fine, but the environment? Dependencies Versions OS …

25 June, 2008

Page 9: Continuous Integration

Continuous Integration, by Mel Gerats9

Everyone can see what's happening

Checkin reports Build reports Test reports Coverage reports http://buildserver/ccnet

25 June, 2008

Page 10: Continuous Integration

Continuous Integration, by Mel Gerats10

Automate Deployment

Successful build => deploy to staging

25 June, 2008

Page 11: Continuous Integration

Continuous Integration, by Mel Gerats11

Overview

Maintain a Single Source Repository. Automate the Build Make Your Build Self-Testing Everyone Commits Every Day Every Commit Should Build the Mainline on an Integration Machine Keep the Build Fast Test in a Clone of the Production Environment Make it Easy for Anyone to Get the Latest Executable Everyone can see what's happening Automate Deployment

25 June, 2008

Page 12: Continuous Integration

Continuous Integration, by Mel Gerats12

Challenges

Bus factor Dependencies Broken window syndrome

25 June, 2008

Page 13: Continuous Integration

Continuous Integration, by Mel Gerats13

Todo’s

Research/try out options-Now we use CruiseControl-Tom will try TeamCity + FinalBuilder-Experiment with Team System

25 June, 2008

Page 14: Continuous Integration

Continuous Integration, by Mel Gerats14

Next steps

Automated unit tests Reports Automated deployment

25 June, 2008

Page 16: Continuous Integration

16 Continuous Integration, by Mel Gerats

www.orbitone.com

25 June, 2008