CI with CuiseControl'Net and Nant - PowerPoint PPT Presentation

About This Presentation
Title:

CI with CuiseControl'Net and Nant

Description:

... practice where members of a team integrate their work ... Martin Fowler. An XP technique. Pair programming. Planning Game. Test Driven Development ... – PowerPoint PPT presentation

Number of Views:109
Avg rating:3.0/5.0
Slides: 13
Provided by: lawren83
Category:

less

Transcript and Presenter's Notes

Title: CI with CuiseControl'Net and Nant


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_at_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

lttarget name"config"gt ltproperty
name"build.dir" value"CruiseControlDemoProject\b
in\Debug"/gt lt/targetgt lttarget
name"clean" depends"config"gt ltdelete
dir"build.dir"/gt ltmkdir
dir"build.dir"/gt lt/targetgt
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 CCNet Config 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.though
    tworks.org/display/CCNET/WelcometoCruiseControl.
    NET
  • Nant http//nant.sourceforge.net/
  • Original CI article http//www.martinfowler.com/
    articles/continuousIntegration.html
Write a Comment
User Comments (0)
About PowerShow.com