1 / 12

CI with CuiseControl.Net and Nant

CI with CuiseControl.Net and Nant. South Florida Enterprise and Strategy Architects Special Interest Group (SF ESA SIG) June 19, 2007 Lawrence Port Otive LLC larry@otive.com. What is Continuous Integration?.

ledell
Download Presentation

CI with CuiseControl.Net and Nant

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CI with CuiseControl.Net and Nant South Florida Enterprise and Strategy Architects Special Interest Group (SF ESA SIG) June 19, 2007 Lawrence Port Otive LLC larry@otive.com

  2. 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

  3. An XP technique • Pair programming • Planning Game • Test Driven Development • Whole team • Continuous Integration • Design Improvement • Small Releases • Coding Standards • Collective Code Ownership • Simple Design • System Metaphor • Sustainable Pace

  4. Continuous Integration Scenario • Developer checks out latest source code from repository. • Developer makes changes (hopefully with TDD). • Developer checks out latest source again to look for conflicts. • With conflicts resolved, developer checks in changes to repository. • CI system, detecting changes, checks out source code on an integration server. • CI system builds. • CI system runs automated tests. Demo: Alice

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

  6. Nant Overview • Targets contain Tasks (think functions) • Tasks perform actions <targetname="config"> <propertyname="build.dir" value="CruiseControlDemoProject\bin\Debug"/> </target> <targetname="clean" depends="config"> <deletedir="${build.dir}"/> <mkdirdir="${build.dir}"/> </target> Properties are variables Targets may have dependencies Demo: basic file usage

  7. Important Nant Tasks • Nunit • Copy • Mkdir, rmdir • Foreach • Zip, tar • Functions exist as well • Also: ability to pass in parameters at command line Show: Nant documentation

  8. CruiseControl.Net Overview • Suite of apps for Continuous Integration: • CCNet Server • CCNet Web Dashboard • CCNet Tray • Allows reporting via XSL. Demo: Start server, show web dash

  9. General CC.Net Flow ccnet.exe Source control nant nunit fitnesse fxcop coverage merge xml result xsl

  10. Important CCNetConfig Elements • Source Control • Tasks • Publishers • Triggers • Nant • Merge • Email Demo: ccnet.config

  11. More In-depth CI • Working with Databases • Distributed build scenarios • Custom Nant tasks • Custom CruiseControl.Net elements Demo: dashboard.config, ccnet.exe.config, javascriptlocalizer,

  12. 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

More Related