Bodhisattva in Training

December 6, 2007 CI Factory, CI Factory News, Continuous Integration, Tools

CI Factory RC1 1.0

That’s right! You read correctly, it says 1.0. This is the first release candidate for version 1.0. There are no features left to add in this release. There is some cleanup, such as documentation updates. I expect the final version to be released sometime early next year.

Update!!! NDepend just released a new version.  I updated CI Factory, hence the version RC2.

Download CI Factory

Version RC2 1.0

So let’s look at what’s changed since the last version, 0.8. In my opinion the major changes are: the web dashboard has had a facelift, a Perforce, FxCop, Archive, Workspace, and NUnit Package have been added, and automated branch creation. There are numerous other changes.

New Web Dashboard

Here is an animated gif of the project grid showing a build in progress (sorry about the stuttering):


You now know much more about a build in progress. I love the elapsed time counter and the auto refresh. You can also see if your changes are in the current build.

Build Report

The build report is significantly different as well. The section headers in the main report are hyperlinks to the corollary detail report page. You can get a feel for the new dashboard at the live build dashboard for CI Factory.

Automated Branch Creation

There is a new NAnt script in the build folder: CreateBranch.xml. Run this script when you wish to create a branch. It will ask you some questions like what do you want to call the new branch, maybe 1.0, and what version to you want the parent branch to be, maybe 1.1. It will create a new code line directory tree as a sibling to the parent branch (probably Current or trunk). Something like this:


It is possible to supply the answers to the script as input parameters so the script can be run silently. The script produces a ready to go branch and edits the parent branch so that it is ready to go as well. This is branch creation made easy!



Simply a package that supports the use of Perforce as your source control repository.


The FxCop Package was donated by Steve Bohlen. Steve has a nice blog post on it here.


This Package copies off artifact folders to a network share maintaining a date window of artifact folders on the build server. This helps to keep the build server from running out of space. There is a companion Alert script that will email you when the space on the build server drops below a configurable point. This way you can be proactive as apposed to reactive.


This Package’s purpose is to make creating and managing Workspaces easy. With it you can codify your Workspace using existing scripts and adding your own. It will bundle these scripts into a setup exe that is downloadable from the web dashboard. This makes it exceedingly easy for a new developer to get up and running. The scripts are also run as a part of the personal build scripts. So you can use them to keep your workspace up to date.


Simply a Package to execute NUnit tests.

Assorted Improvements


Add stdin attribute to exec based tasks, it’s value will be fed to standard input.

Added NAnt function to replace a hint path for a binary ref.

Allow includes in nant to occure anywhere, look out for new and fun errors.

Add file::get-product-version nant function.

Change TryCatchTask to catch type Exception and not just BuildException

Added task to delete tfs subscriptions

Added nant function to get date of last ccnet build

Added ccnet nant function to get a list of build file names

Added CCNet NAnt function to get latest build file name

Added FreeText Mode to Ask task

Added Add mode to XmlPoke task, named existing functionality replace mode

Improved xpath eval of xmlpeek, now includes eval of functions like count()

Added OuterXml property to xmlpeek

Asyncexec/WaitForExit – Remove TaskNames from list after having waited on them

Asyncexec/WaitForExit – Check to see if the Task exists before waiting on it

Personal Build

Pass many args to NAnt from batch files, Build.bat and NoUpdateBuild.bat

Added CSS style sheet to personal build output.


Add icon to header

Change Dashboard title to be more informative

Add build time info to project grid

Improve FxCop, NDepend, Simian, Modifications, and Deployment reports

Added links from summary report sections to detailed reports

switch MbUnit package to new reporting style

switch NCover to new reporting style

Added mods and forcee to project grid

Add images for Deployment, File, SourceControl, CI Factory icon, and more

Collapsible modifications in dashboard

Better colors for errors and warning sections

Improved Header

Source Control and Deployment File Icons

Add better images for web dashboard

Add Status Images Improve layout

add confirm prompt to force build button

Consolidate Build state and activity into Availability

Add logos for Simian, NDepend, and MSBuild

Core CI Factory

Add NAnt.xsd to build project, attempting to have the xsd automatically picked up by the IDE for intellisense.

Add Force Filters to ccnet project file.

Add Personal.Build folder to build solution.

Make use of the DTD Entities instead of hard coded paths in all xml config files and xsl files.

Promote the Unit Test and Install directories to Properties.build.xml

Allow initial version to be set in the install.

Add script CreateBranch.xml to the build directory, supports basic creation of branches.

Move common variables to a new file Entities.xml

Move personal build stuff from Power Tools to full install.

Add Creation of Sfx installer for CCTray.

Added condition where when the build log files are on the same host as the dashboard the build logs are retrieved directly from the hard drive.

SetupIIS.xml – Set to Classic ASP.Net for Vista.

Performance improvements to CCNet core

CCNet Server Aggregator – Implement more of the interface, allowing the aggregator to service dashboards

CCNet mod writer will now create the output dir if needed


Upgrade NDepend to

Upgrade Simian to 2.2.21

Upgrade NUnit to 2.4.5

VS.NETCompile: Add set of working dir exec of DevEnv, fixes some post build script issues that use relative paths

Added FxCop Package, donated by Steve Bohlen.

Add check for Subversion to Subversion Package, if not installed will download and install it.

Added Archive Package

Added Diskspace Alert script

Improvement on the Vault Package from Stephen Bohlen: a new property called ${Vault.Repository.BasePath} that points to the folder path in the repository that the CIFactory installer will use as the ‘root’ pathing of the project when its added to VAULT. The SourceControl.Targets.xml has been modified to use this setting to construct the needed pathing in the VAULT repository and to then set the working folder in the repos to this folder for the solution.

Added Perforce Package

Created a Workspace Package to define, create, and maintain workspaces, this includes a setup exe as a download from the dashboard.

Add trigger manipulation to VSTS package

Added NUnit Package and Tests

Add interactive option to get in Subversion Package, uses Tortoise

Added control over svn install location, no need to have in the path any more

12 to “CI Factory RC1 1.0”


  1. […] Daily Bits – December 10, 2007 Posted in December 10th, 2007 by Alvin Ashcraft in Daily Links, Development, microsoft CI Factory 1.0 RC1 (via Mike Gunderloy) […]

  1. Chris Patterson says...


    Great work! I’ve been trying to find a point in time to give CI Factory a look and figure out how it can save us time. Hopefully we’ll be able to test drive it in a week or two and starting using it completely next year!

  2. oil portraits says...

    Thanks for this information. I’m collecting information as to how CI Factory can help us save time. Our admin however won’t give it a try. Do you have any article or written material that lists all the benefits of CI.

  3. jflowers says...

    @oil portraits
    hmm, depends on who you ask. An admin can be swayed for different reasons than a developer.

    That aside here is a list:

    1.) Provides a best practices implementation of industry standard, and in many cases best of breed, tools.
    2.) CI Factory is under active development and offers paid commercial support.
    3.) Provides a setup exe for new developers to get up and running in seconds.
    4.) Provides consistency in development workspaces enabling cross project personnel to focus on the project domain and not it’s infrastructure.
    5.) Provides install scripts to get a new project up and running in seconds; I mean this literally.
    6.) Provides an upgrade script to help keep you in sync with the latest bits with the lest effort.
    7.) Automated branching is baked in, with the create branch script you can create an new branch of your product in seconds.
    8.) Easy to use web dashboard helps show you why a build fail quickly so that can get it fixed.
    9.) It is easy to configure, extend, and customize, add in small changes like a custom zip file to large changes like integration with your bug tracking system.
    10.) Why would you want to do it all yourself?

    Is that what you are looking for?


  4. Jeremy N says...


    Great work on getting to the RC1. Been using CI Factory for some time now and it has been a huge time saver and allowed me to help various development teams accually get to some sort of automated build where it would not have even been possible before. I am sure that I speak for everyone that has used CI Factory when I say THANKS for all your hard leg work!

    -Jeremy N

  5. » Daily Bits - December 10, 2007 Alvin Ashcraft’s Daily Geek Bits: Daily links plus random ramblings about development, gadgets and raising rugrats. says...

    […] Daily Bits – December 10, 2007 Posted in December 10th, 2007 by Alvin Ashcraft in Daily Links, Development, microsoft CI Factory 1.0 RC1 (via Mike Gunderloy) […]

  6. The Disco Blog » Blog Archive » The weekly bag– Dec 7 says...

    […] CI Factory RC1 1.0- 1.0 is close, baby! […]

  7. Bill Campbell says...

    Hi Jay,

    This looks great – but I’m having a hard time trying to figure out how to use your CI. I’ve downloaded and see it’s an exe. I’ve run the exe and it created a Tools directory. I tried to open the .sln file and it gives an error that “The application for project ‘C:\Tools\CI Factory\Packages.csproj’ is not installed. Where do I find instructions on how to install and set this up? I am using TFS2005 as my source control.


  8. jflowers says...

    Hi Bill,
    Hmm, the error message seems to indicate that you don’t have C# support in Visual Studio 2005 installed.
    The install instructions are in the Documents folder. I would suggest you join the Google Group for CI Factory.


    If you are using TFS I think you should use a newer build than RC2. I was lucky to find a tester for TFS2005 after I release RC2, so a newer build will server you better. Please download or greater from the Release Build here:



  9. Bill Campbell says...

    Hi Jay!

    Happy New Year!!

    I am trying to get a newer build to use with TFS2005 as you suggest but it appears that the latest on the download site is RC2 Is there a different place I should be looking for a newer build than:



  10. JayFlowers > CI Factory Version 1.0 says...

    […] CI Factory RC1 1.0 […]

  11. Webdesign Köln says...

    Thanks for the usefully Article.

Leave a comment