continues integration

44
Continues Integration Johan Aludden Twitter: johanaludden Mail: [email protected] Blog: johanaludden.com/weblog

Upload: johan-aludden

Post on 15-Jan-2015

1.003 views

Category:

Technology


1 download

DESCRIPTION

A presentation on continues integrations

TRANSCRIPT

Page 1: Continues Integration

Continues Integration

Johan AluddenTwitter: johanaludden

Mail: [email protected]: johanaludden.com/weblog

Page 2: Continues Integration

What is Continues Integration?• Compile continuously• Test continuously• Prepare installation continuously• Measure quality continuously• Create documentation continuously

2

Page 3: Continues Integration

Components• Developers• Version Control Repository• CI server• Build script• Feedback• Integration Build Machine

3

Page 4: Continues Integration

Developers• Makes Changes to code• Runs a private Build• Commits changes

4

Page 5: Continues Integration

Version Control Repository• Central point of truth• Good Practice• History• CVS, SVN, Perforce, Git

5

Page 6: Continues Integration

CI server• Checks for changes• Retrieves changes• Runs build script(s)• Dashboard

6

Page 7: Continues Integration

Build Script• Automated• Complete• Launched from Command line

7

Page 8: Continues Integration

Feedback• Email• Instant messaging• SMS• RSS• Sounds• Monitor

8

Page 9: Continues Integration

Integration Build Machine• Dedicated• The reference

9

Page 10: Continues Integration

Benefits• Risk reduction• Less repetition• Generate Deployable Software• Increase Visibility• More Confidence

10

Page 11: Continues Integration

Excuses• Increasing maintenance• Too much change• Frequently failed builds• Additional cost• Should already be made

11

Page 12: Continues Integration

First steps• Centralized repository• Compile code• Package binaries• Add testing• Add inspections

12

Page 13: Continues Integration

Common Problems• Long build time• Frequently failed builds• To much information• Many target platforms

13

Page 14: Continues Integration

Long build time• Make it faster• Split and run in Parallell• Split and run in Sequence

14

Page 15: Continues Integration

Frequently failed builds• Are all committed?• Can the devs run on local machine?• Code to fragile?• Tests to fragile?

15

Page 16: Continues Integration

To much information• Is all information necessary• What information can be removed• Multiple source of information• Pull not push• Visualize information

16

Page 17: Continues Integration

Many target platforms• One CI server per platform• Compile code• Package binaries

17

Page 18: Continues Integration

Pipelines• Jobs– Runs in Parallell

• Stages– Runs in sequence– contains 1 or more jobs

18

Page 19: Continues Integration

PipelinePipeline

19

Page 20: Continues Integration

PipelinePipeline

19

Stage

Page 21: Continues Integration

PipelinePipeline

19

StageStage

JobJob

JobJob

Page 22: Continues Integration

PipelinePipeline

19

StageStage

JobJob

JobJob

StageStage

JobJob

JobJob

Page 23: Continues Integration

PipelinePipeline

19

StageStage

JobJob

JobJob

StageStage

JobJob

JobJob

StageStage

JobJob

Page 24: Continues Integration

PipelinePipeline

19

StageStage

JobJob

JobJob

StageStage

JobJob

JobJob

StageStage

JobJob

Page 25: Continues Integration

PipelinePipeline

19

StageStage

JobJob

JobJob

StageStage

JobJob

JobJob

StageStage

JobJob

Page 26: Continues Integration

PipelinePipeline

19

StageStage

JobJob

JobJob

StageStage

JobJob

JobJob

StageStage

JobJob

Page 27: Continues Integration

PipelinePipeline

19

StageStage

JobJob

JobJob

StageStage

JobJob

JobJob

StageStage

JobJob

Page 28: Continues Integration

PipelinePipeline

19

StageStage

JobJob

JobJob

StageStage

JobJob

JobJob

StageStage

JobJob

Page 29: Continues Integration

PipelinePipeline

19

StageStage

JobJob

JobJob

StageStage

JobJob

JobJob

StageStage

JobJob

Page 30: Continues Integration

PipelinePipeline

19

StageStage

JobJob

JobJob

StageStage

JobJob

JobJob

StageStage

JobJob

Page 31: Continues Integration

PipelinePipeline

19

StageStage

JobJob

JobJob

StageStage

JobJob

JobJob

StageStage

JobJob

Page 32: Continues Integration

PipelinePipeline

19

StageStage

JobJob

JobJob

StageStage

JobJob

JobJob

StageStage

JobJob

Page 33: Continues Integration

PipelinePipeline

20

StageStage

JobJob

JobJob

StageStage

JobJob

JobJob

Stage

Job

Page 34: Continues Integration

PipelinePipeline

20

StageStage

JobJob

JobJob

StageStage

JobJob

JobJob

Stage

Job

Page 35: Continues Integration

PipelinePipeline

20

StageStage

JobJob

JobJob

StageStage

JobJob

JobJob

Stage

Job

Page 36: Continues Integration

PipelinePipeline

20

StageStage

JobJob

JobJob

StageStage

JobJob

JobJob

Stage

Job

Page 37: Continues Integration

PipelinePipeline

20

StageStage

JobJob

JobJob

StageStage

JobJob

JobJob

Stage

Job

Page 38: Continues Integration

PipelinePipeline

20

StageStage

JobJob

JobJob

StageStage

JobJob

JobJob

Stage

Job

Page 39: Continues Integration

PipelinePipeline

20

StageStage

JobJob

JobJob

StageStage

JobJob

JobJob

Stage

Job

Page 40: Continues Integration

PipelinePipeline

20

StageStage

JobJob

JobJob

StageStage

JobJob

JobJob

Stage

Job

Page 41: Continues Integration

PipelinePipeline

20

StageStage

JobJob

JobJob

StageStage

JobJob

JobJob

Stage

Job

Page 42: Continues Integration

CI servers• CruiseControl• Hudson• Cruise • Bamboo

21

Page 44: Continues Integration

Questions?

23