Continuous integration

Post on 04-Jul-2015

339 views 0 download

description

One of the essential tenets of Agile is maintaining a tight feedback loop and one of the easiest ways to achieve that is by leveraging Continuous Integration techniques to provide real-time feedback to the entire project team about the health of the code in the source control repository.

Transcript of Continuous integration

In the beginning…

C#C#

Writing code….

C#C#

C#C#

C#C#

And the project team grew…

Swapping source files….

C#C#

C#C#

C#C#

C#C#

C#C#

C#C#

!

There’s got to be a better way…

Source control to the rescue….

C#C#

C#C#

C#C#

C#C#

C#C#

C#C#

SourceRepo

Sharing files…

Checking in…

App.configApp.config

C#C#

SourceRepo

<configuration><add key=“CachedFilesBaseDirectory”

value=“D:\SusanStuff\Myprojects\OrderManagement\” /></configuration>

Checking in…

App.configApp.config

C#C#

SourceRepo

One week later…

Updating local versions…???

SourceRepo

What if…

Feature complete…

App.configApp.config

C#C#

Continuous

Integration Server

SourceRepo

A few minutes later…

Changes are detected…

ContinuousIntegration

Server

Compiling…

Running unit tests…

SourceRepo

Running Unit Tests: Passed: 106, Failed: 1, Ignored: 0

Test: ShouldFindOrderInCachedItems Directory \OrderManagement\ not found.

D:\SusanStuff\MyProjects

!

SourceRepo

Fixing the build…

App.configApp.config

C#C#

<configuration><add key=“CachedFilesBaseDirectory”

value=“${CachedFilesBaseDirectory}\OrderManagement\” /></configuration>

ContinuousIntegration

Server

A few minutes later…

Changes are detected…

ContinuousIntegration

Server

Compiling…

Running unit tests…

SourceRepo

References

• Diagrams sourced from:– http://www.designcomics.org