South Florida Enterprise and Strategy Architects Special Interest Group (SF ESA SIG) June 19, 2007...
-
Upload
evelyn-ford -
Category
Documents
-
view
220 -
download
0
Transcript of South Florida Enterprise and Strategy Architects Special Interest Group (SF ESA SIG) June 19, 2007...
![Page 1: South Florida Enterprise and Strategy Architects Special Interest Group (SF ESA SIG) June 19, 2007 Lawrence Port Otive LLC larry@otive.com.](https://reader036.fdocuments.us/reader036/viewer/2022062322/5697bfac1a28abf838c9b983/html5/thumbnails/1.jpg)
South Florida Enterprise and Strategy Architects Special Interest Group (SF ESA
SIG)June 19, 2007
Lawrence PortOtive LLC
![Page 2: South Florida Enterprise and Strategy Architects Special Interest Group (SF ESA SIG) June 19, 2007 Lawrence Port Otive LLC larry@otive.com.](https://reader036.fdocuments.us/reader036/viewer/2022062322/5697bfac1a28abf838c9b983/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: South Florida Enterprise and Strategy Architects Special Interest Group (SF ESA SIG) June 19, 2007 Lawrence Port Otive LLC larry@otive.com.](https://reader036.fdocuments.us/reader036/viewer/2022062322/5697bfac1a28abf838c9b983/html5/thumbnails/3.jpg)
An XP techniquePair programmingPlanning GameTest Driven DevelopmentWhole teamContinuous IntegrationDesign ImprovementSmall ReleasesCoding StandardsCollective Code OwnershipSimple DesignSystem MetaphorSustainable Pace
![Page 4: South Florida Enterprise and Strategy Architects Special Interest Group (SF ESA SIG) June 19, 2007 Lawrence Port Otive LLC larry@otive.com.](https://reader036.fdocuments.us/reader036/viewer/2022062322/5697bfac1a28abf838c9b983/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: South Florida Enterprise and Strategy Architects Special Interest Group (SF ESA SIG) June 19, 2007 Lawrence Port Otive LLC larry@otive.com.](https://reader036.fdocuments.us/reader036/viewer/2022062322/5697bfac1a28abf838c9b983/html5/thumbnails/5.jpg)
Is CI just another unpracticed trend?Who in the room does CI?Nant and CruiseControl.Net widely used.
![Page 6: South Florida Enterprise and Strategy Architects Special Interest Group (SF ESA SIG) June 19, 2007 Lawrence Port Otive LLC larry@otive.com.](https://reader036.fdocuments.us/reader036/viewer/2022062322/5697bfac1a28abf838c9b983/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: South Florida Enterprise and Strategy Architects Special Interest Group (SF ESA SIG) June 19, 2007 Lawrence Port Otive LLC larry@otive.com.](https://reader036.fdocuments.us/reader036/viewer/2022062322/5697bfac1a28abf838c9b983/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: South Florida Enterprise and Strategy Architects Special Interest Group (SF ESA SIG) June 19, 2007 Lawrence Port Otive LLC larry@otive.com.](https://reader036.fdocuments.us/reader036/viewer/2022062322/5697bfac1a28abf838c9b983/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: South Florida Enterprise and Strategy Architects Special Interest Group (SF ESA SIG) June 19, 2007 Lawrence Port Otive LLC larry@otive.com.](https://reader036.fdocuments.us/reader036/viewer/2022062322/5697bfac1a28abf838c9b983/html5/thumbnails/9.jpg)
General CC.Net Flow
ccnet.exe
nant nunit
fitnesse
coverage
fxcop
xml resultmerge
xsl
Source control
![Page 10: South Florida Enterprise and Strategy Architects Special Interest Group (SF ESA SIG) June 19, 2007 Lawrence Port Otive LLC larry@otive.com.](https://reader036.fdocuments.us/reader036/viewer/2022062322/5697bfac1a28abf838c9b983/html5/thumbnails/10.jpg)
Important CCNet Config ElementsSource ControlTasksPublishersTriggersNantMergeEmail
Demo: ccnet.config
![Page 11: South Florida Enterprise and Strategy Architects Special Interest Group (SF ESA SIG) June 19, 2007 Lawrence Port Otive LLC larry@otive.com.](https://reader036.fdocuments.us/reader036/viewer/2022062322/5697bfac1a28abf838c9b983/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: South Florida Enterprise and Strategy Architects Special Interest Group (SF ESA SIG) June 19, 2007 Lawrence Port Otive LLC larry@otive.com.](https://reader036.fdocuments.us/reader036/viewer/2022062322/5697bfac1a28abf838c9b983/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