Implementing Enterprise Continuous Integration with Vault

This forum is now locked, since Gold Support is no longer offered.

Moderator: SourceGear

Locked
christian
Posts: 202
Joined: Tue Sep 14, 2004 1:02 pm
Location: UK

Implementing Enterprise Continuous Integration with Vault

Post by christian » Mon Jul 25, 2005 1:06 pm

Hi Jeremy,
I'm in the middle of setting up a continuous integration process using NAnt and CruiseControl.Net. I notice that you've authored a subset of the clc commands as nant extensions - cool. However, I need to use pin and unpin in addition to the tasks already there. Is it possible that you can add these?

A bit of background to the task at hand. I'm setting up a partitioned solution arrangement with a master vs.net solution and a child vs.net solution. The master solution will contain all the vs.net projects while the child solution contains the business and data access layers. All standard fair. Problem with this arrangement in practise is that the team is also divided in this fashion. This ends up working against the ci build as the team working on the child solution checks in changes that breaks the ci build for the master solution. This build remains broken until such time as the co-workers can change the code in the presentation layer - usually hours if not days later.

The suggested way around this is to move to a multi-solution arrangement with a ci build for each vs.net solution. In this way the presentation tier references the last known good binary version of the lower tiers that integrated with the presentation tier. Another, enterprise, ci build then tries to integrate the latest lower tiers with the latest presentation tier code every time there's a change. A better explanation on this can be found at: http://mikeroberts.thoughtworks.net/blo ... ncies.html

However, with this you lose the benefits of a partitioned solution - dependency management for free, a hard time if ever you have to reproduce a historic build, refactoring tool support that works across the entire code base, etc.

So I've thought of a variation to this enterprise ci that will preserve a partitioned solution arrangement while at the same time breaking the dependency the presentation tier must have on the latest lower tier code. It involves sharing, on a "read-only" basis, the lower tier vs.net projects into the master solution - not that innovative thus far. The interesting bit is what happens on a successful enterprice ci build. The eci build tries to integrate the latest lower tier code with the presentation tier, if this is successful the eci build unpins the vs.net projects in the master solution and repins them. Simple but I think it should be very effective.

Any way, I hope you can add these new tasks to nant as it will keep the script clean from having to munge around trying to parse the xml return values from the clc vault client.

Thanks in advance.
Christian

Locked