But it works on my PC or continuous integration to improve software quality - PowerPoint PPT Presentation

1 / 18
About This Presentation
Title:

But it works on my PC or continuous integration to improve software quality

Description:

'BUT IT WORKS ON MY PC' OR CONTINUOUS INTEGRATION TO IMPROVE SOFTWARE QUALITY. Richard ... co.uk 'Night Build of Scarlet BLACKMTX.OCX - Win32 Release' build.txt ... – PowerPoint PPT presentation

Number of Views:153
Avg rating:3.0/5.0
Slides: 19
Provided by: Richard1335
Category:

less

Transcript and Presenter's Notes

Title: But it works on my PC or continuous integration to improve software quality


1
But it works on my PCor continuous
integration to improve software quality
  • Richard FennellEngineering Director
  • Developer Day Scotland 10th May 2008

2
Agenda
  • Why do we need continuous integration?
  • What have we done in the past?
  • CruiseControl
  • Team Foundation Server
  • Going Further

3
Why do we need continuous integration?
  • Replication of development environments can be
    hard
  • The project integration phase is hard
  • It is usually attempted only at the end of the
    project
  • It is prone to time overruns and often introduces
    bugs

4
What is Continuous Integration?
  • Based on automated builds
  • The solution is built whenever the code is
    changed
  • Should be started as soon as possible
  • And repeated as often as possible
  • A core part of most Agile processes

5
Nightbuild - Batch Files
  • _at_echo off
  • Echo Start BLACKMT build
  • SET ssdir\\wellington\data\sourcesafe
  • echo Remove old files from DIR and create any
    directories required
  • md \projects\blackmtx
  • cd \projects\blackmtx
  • \user\nightbuild\rm /f /x /r .
  • echo Get the latest files from sourcesafe
  • "C\Program Files\Microsoft Visual
    Studio\Common\VSS\win32\ss" get
    \scarlet\programs\blackmtx\. -R
    -Ynightbuild,nightbuild -I- -W
  • Echo Build the product
  • "C\Program Files\Microsoft Visual
    Studio\Common\MSDev98\Bin\MSDEV.EXE" blackmtx.dsw
    /MAKE "blackmtx - Win32 Release" /REBUILD /OUT
    build.txt
  • Echo Sending log file via email
  • c\user\nightbuild\ParserMailer VS6 wellington
    nightbuild_at_blackmarble.co.uk nightbuild_at_blackmarbl
    e.co.uk "Night Build of Scarlet BLACKMTX.OCX -
    Win32 Release" build.txt
  • echo Build complete

6
Nightbuild did it help?
  • A good start
  • Provided an automated build process
  • Provided a check that we had not broken any
    associated projects
  • Good for shared libraries
  • Could be extended to integrate testing and
    deployment

7
CruiseControl
  • Originally a Java-based framework for a
    continuous build process
  • Distributed under an open source BSD-style
    license and is free for use
  • Ported to .NET by Thoughtworks and hosted on
    SourceForge as ccnet

8
CruiseControl
Image Source - http//cruisecontrol.sourceforge.ne
t/overview.html
9
demo
Using CruiseControl
10
CruiseControl Tips
  • If it fails check the timeouts
  • If it still fails check temporary files
  • Look at DevEnv tasks, usually these have already
    done the hard work
  • Have a play to see if MSBuild, nAnt or individual
    tasks works best for you.
  • Use the community - Google like mad for tips,
    samples and tasks!

11
Visual Studio Team SystemApplication Life Cycle
Management (ALM) Solution
12
TFS Build Automation
Drop Location
Team Foundation Client
  • Create build type
  • Start build
  • View Reports

Application Tier
  • Team Build Web
  • Services

Build Machine
Data Tier
  • Sources
  • Work items
  • Team Build data

Team Foundation warehouse
MSBuild
13
demo
Using Team Build for CI
14
TFS versus CruiseControl
  • TFS provides
  • Integration with the rest of the Team Server
  • Unified access to all MSBuild tasks
  • But at the cost of
  • Cost
  • Have to use nested MSBUILD files
  • Less integration with third party tools

15
Going Further
  • Building deployment systems e.g. MSI
  • Automated deployments to test or to ClickOnce
    servers.
  • Automated provisioning of virtual test
    environments
  • Automated functional testing as well as unit
    testing

16
Summary
  • Get an integration build going as soon as
    possible
  • Extend it as you go along
  • Make breaking the build a hanging offence
  • Experiment to find out the best solution for your
    project consider CI even if only a one person
    team

17
Good Resources
  • http//blogs.msdn.com/robcaron/
  • http//www.martinfowler.com
  • http//weblogs.asp.net/rosherove/
  • http//cruisecontrol.sourceforge.net/
  • http//msdn.microsoft.com/vstudio/teamsystem/
  • http//www.nunit.org/

18
For Further Information
  • My random thoughts at
  • http//blogs.blackmarble.co.uk/blogs/rfennell
  • You can also get in touch via
  • Email richard_at_blackmarble.co.uk
  • Website www.blackmarble.co.uk
Write a Comment
User Comments (0)
About PowerShow.com