![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](https://reader031.vdocuments.net/reader031/viewer/2022030604/5ad34bcd7f8b9a86158e3eda/html5/thumbnails/1.jpg)
South Florida Enterprise and Strategy Architects Special Interest Group (SF ESA
SIG)June 19, 2007
Lawrence PortOtive LLC
![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](https://reader031.vdocuments.net/reader031/viewer/2022030604/5ad34bcd7f8b9a86158e3eda/html5/thumbnails/2.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022030604/5ad34bcd7f8b9a86158e3eda/html5/thumbnails/3.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022030604/5ad34bcd7f8b9a86158e3eda/html5/thumbnails/4.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022030604/5ad34bcd7f8b9a86158e3eda/html5/thumbnails/5.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022030604/5ad34bcd7f8b9a86158e3eda/html5/thumbnails/6.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022030604/5ad34bcd7f8b9a86158e3eda/html5/thumbnails/7.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022030604/5ad34bcd7f8b9a86158e3eda/html5/thumbnails/8.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022030604/5ad34bcd7f8b9a86158e3eda/html5/thumbnails/9.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022030604/5ad34bcd7f8b9a86158e3eda/html5/thumbnails/10.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022030604/5ad34bcd7f8b9a86158e3eda/html5/thumbnails/11.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022030604/5ad34bcd7f8b9a86158e3eda/html5/thumbnails/12.jpg)
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