[ppt]ci with cuisecontrol.net and nant - fladotnet.com · web viewtitle ci with cuisecontrol.net...

12
South Florida Enterprise and Strategy Architects Special Interest Group (SF ESA SIG) June 19, 2007 Lawrence Port Otive LLC [email protected]

Upload: vuongcong

Post on 15-Apr-2018

216 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: [PPT]CI with CuiseControl.Net and Nant - FlaDotnet.com · Web viewTitle CI with CuiseControl.Net and Nant Author Lawrence Port Last modified by daven Created Date 6/13/2007 1:07:26

South Florida Enterprise and Strategy Architects Special Interest Group (SF ESA

SIG)June 19, 2007

Lawrence PortOtive LLC

[email protected]

Page 2: [PPT]CI with CuiseControl.Net and Nant - FlaDotnet.com · Web viewTitle CI with CuiseControl.Net and Nant Author Lawrence Port Last modified by daven Created Date 6/13/2007 1:07:26

What is Continuous Integration?“Continuous Integration is a software

development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible.” –Martin Fowler

Page 3: [PPT]CI with CuiseControl.Net and Nant - FlaDotnet.com · Web viewTitle CI with CuiseControl.Net and Nant Author Lawrence Port Last modified by daven Created Date 6/13/2007 1:07:26

An XP techniquePair programmingPlanning GameTest Driven DevelopmentWhole teamContinuous IntegrationDesign ImprovementSmall ReleasesCoding StandardsCollective Code OwnershipSimple DesignSystem MetaphorSustainable Pace

Page 4: [PPT]CI with CuiseControl.Net and Nant - FlaDotnet.com · Web viewTitle CI with CuiseControl.Net and Nant Author Lawrence Port Last modified by daven Created Date 6/13/2007 1:07:26

Continuous Integration Scenario1. Developer checks out latest source code from

repository.2. Developer makes changes (hopefully with TDD).3. Developer checks out latest source again to look

for conflicts.4. With conflicts resolved, developer checks in

changes to repository.5. CI system, detecting changes, checks out source

code on an integration server.6. CI system builds.7. CI system runs automated tests.

Demo: Alice

Page 5: [PPT]CI with CuiseControl.Net and Nant - FlaDotnet.com · Web viewTitle CI with CuiseControl.Net and Nant Author Lawrence Port Last modified by daven Created Date 6/13/2007 1:07:26

Is CI just another unpracticed trend?Who in the room does CI?Nant and CruiseControl.Net widely used.

Page 6: [PPT]CI with CuiseControl.Net and Nant - FlaDotnet.com · Web viewTitle CI with CuiseControl.Net and Nant Author Lawrence Port Last modified by daven Created Date 6/13/2007 1:07:26

Nant OverviewTargets contain Tasks (think functions)Tasks perform actions

Targets may have

dependencies

Properties are variables

<target name="config"> <property name="build.dir" value="CruiseControlDemoProject\bin\Debug"/> </target>

<target name="clean" depends="config"> <delete dir="${build.dir}"/> <mkdir dir="${build.dir}"/> </target>

Demo: basic file usage

Page 7: [PPT]CI with CuiseControl.Net and Nant - FlaDotnet.com · Web viewTitle CI with CuiseControl.Net and Nant Author Lawrence Port Last modified by daven Created Date 6/13/2007 1:07:26

Important Nant TasksNunitCopyMkdir, rmdirForeachZip, tarFunctions exist as wellAlso: ability to pass in parameters at

command line

Show: Nant documentation

Page 8: [PPT]CI with CuiseControl.Net and Nant - FlaDotnet.com · Web viewTitle CI with CuiseControl.Net and Nant Author Lawrence Port Last modified by daven Created Date 6/13/2007 1:07:26

CruiseControl.Net OverviewSuite of apps for Continuous Integration:

CCNet ServerCCNet Web DashboardCCNet Tray

Allows reporting via XSL.

Demo: Start server, show web dash

Page 9: [PPT]CI with CuiseControl.Net and Nant - FlaDotnet.com · Web viewTitle CI with CuiseControl.Net and Nant Author Lawrence Port Last modified by daven Created Date 6/13/2007 1:07:26

General CC.Net Flow

ccnet.exe

nant nunit

fitnesse

coverage

fxcop

xml resultmerge

xsl

Source control

Page 10: [PPT]CI with CuiseControl.Net and Nant - FlaDotnet.com · Web viewTitle CI with CuiseControl.Net and Nant Author Lawrence Port Last modified by daven Created Date 6/13/2007 1:07:26

Important CCNet Config ElementsSource ControlTasksPublishersTriggersNantMergeEmail

Demo: ccnet.config

Page 11: [PPT]CI with CuiseControl.Net and Nant - FlaDotnet.com · Web viewTitle CI with CuiseControl.Net and Nant Author Lawrence Port Last modified by daven Created Date 6/13/2007 1:07:26

More In-depth CIWorking with DatabasesDistributed build scenariosCustom Nant tasksCustom CruiseControl.Net elements

Demo: dashboard.config, ccnet.exe.config, javascriptlocalizer,

Page 12: [PPT]CI with CuiseControl.Net and Nant - FlaDotnet.com · Web viewTitle CI with CuiseControl.Net and Nant Author Lawrence Port Last modified by daven Created Date 6/13/2007 1:07:26

References CruiseControl.Net:

http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET

Nant: http://nant.sourceforge.net/ Original CI article:

http://www.martinfowler.com/articles/continuousIntegration.html