msiyer
msiyer

Reputation: 841

Cruisecontrol.net with UCM Clearcase - How to?

I am trying to configure Cruisecontrol.net for UCM Clearcase for the first time. Following is the sourceControl tag in the ccnet.config file:

<sourcecontrol type="clearCase">
            <branch>123_India_Release</branch>  
            <autoGetSource>true</autoGetSource>
            <viewName>admin_123_CRUISE</viewName>
            <viewPath>$(ViewDirectory)</viewPath>
            <useLabel>false</useLabel>
            <useBaseline>false</useBaseline>
            <executable>cleartool.exe</executable>
        </sourcecontrol>

I constantly receive the following error:

ThoughtWorks.CruiseControl.Core.CruiseControlException: Source control operation failed: cleartool: Error: Not an object in a vob: "PATH TO THE VIEW"

When I run cleartool from an arbitrary directory with the following parameters:

cleartool.exe lshist -r -nco -branch "123_India_Release" -since 05-Dec-2012.14:38:18 -fmt

I get the same error. But if I change the working directory to $(ViewDirectory) before running cleartool, it runs fine.

How should I make Cruisecontrol.net run cleartool.exe from the $(ViewDirectory)? I have already tried adding <workingDirectory>$(ViewDirectory)</workingDirectory> tag before <executable>cleartool.exe</executable> but it did not work.

Any help would be appreciated.

EDIT 1:

As a workaround I have done the following:

            <exec>
                <executable>cleartool.exe</executable>
                <baseDirectory>d:\Workspace\123_India_Release\VOB</baseDirectory>
                <buildArgs>update -force</buildArgs>
                <buildTimeoutSeconds>6000</buildTimeoutSeconds>
            </exec>

I have added this to the tasks tag. I have configured an hourly trigger which does the following:

1) Update snapshot view

2) Build the VS 2010 solutions mentioned in the tasks tag.

The limitations are:

1) The trigger is hourly. I want it to be a commit based trigger.

2) This is a workaround

EDIT 2:

Further experimentation revealed that the ccnet.exe works fine. It does all that is needed. The issue is caused by the service ccservice.

I have stopped ccservice for now and started ccnet.exe. I plan to leave it running.

Upvotes: 1

Views: 198

Answers (1)

VonC
VonC

Reputation: 1323553

The View directory isn't enough: you must specify a vob.

See for instance:

The path should looks like:

<viewPath>Drive:\path\to\view\vobname</viewPath>

If your $(ViewDirectory) already references Drive:\path\to\view, then you could use:

<viewPath>$(ViewDirectory)\vobname</viewPath>

Upvotes: 0

Related Questions