Hello all,

 

We have put in a fix for this - it will take a new snapshot of the
integration properties after the label has been generated. This is available
from the latest build on ccnetlive.

 

As a bit of background for this problem - build values were intended to be
static values that are set at the beginning of the build (i.e. they came
from the parameter values that people entered.) Over time people added
additional functionality (added integration properties, changed to using
build values within source control blocks, etc.) So we probably need to
resolve the best way of handling this some time, rather than just adding
patches on top of patches L

 

 

Craig

 

From: [email protected] [mailto:[email protected]] On
Behalf Of Ruben Willems
Sent: Wednesday, 10 February 2010 10:24 a.m.
To: [email protected]
Subject: Re: [ccnet-user] using Dynamic Value in publisher block
(CCNetLabel)

 

Hi

created an issue
http://jira.public.thoughtworks.org/browse/CCNET-1816

working on a solution

with kind regards
Ruben Willems

On Tue, Feb 9, 2010 at 12:01 AM, Allen Weeks <[email protected]> wrote:

I've found the same issue with CC.Net 1.5.6697.8 from CCNetLive in a
forceBuild publisher.

I'm also using the parameters stored in the build log xml with the xpath
expression

    <xsl:variable name="CCNetLabel"
select="/cruisecontrol/parameters/paramet...@name='$CCNetLabel']/@value"/>

in a dashboard XSL transform and also finding the same out of date label.

I think I've tracked down the source of this issue to
IntegrationRunner.Integrate() in core/IntegrationRunner.cs. After the build
label is created it is updated on the IIntegrationResult, but neither the
result.Parameters array nor the result.IntegrationRequest.BuildValues hash
is updated. Updating these just after the calls to target.CreateLabel()
seems to fix the problem.

The ExecutableTask is not effected because it obtains the CCNetLabel via
IIntegrationResult.IntegrationProperties, which creates a fresh hash table
every time containing the latest value of IIntegrationResult.Label.

-- Allen



Christophe Planty wrote: 

 

Hi,

 

With the RC1 version (never tryed with older versions), I encountered a
strange behaviour while trying to use CCNetLabel value in publisher block : 

 

i can retreive $[$CCNetLabel]  , but it's the label of the previous build ,
not the current one .

 

I wonder if it's the expected result.  (I'd expect the current's build label
, then there's maybe some changes to do in my config)

 

config is basically like :

 

 

<project ....

<labeller type="defaultlabeller">

<initialBuildLabel>1</initialBuildLabel>

<prefix>MyBuild-</prefix>

<incrementOnFailure>true</incrementOnFailure>

<labelFormat>00000</labelFormat>

</labeller>

<tasks>

.... some tasks

<tasks>

<publishers>

.... some other publishers

<exec>

<executable>test.bat</executable>

<buildArgs>logForTest $[$CCNetLabel]</buildArgs>

</exec>

</publishers>

 

the small test.bat just echo and logs in a file the arguments ... 

i observed same bahaviour with  <labeller type="lastChangeLabeller">

 

is there a way to retreive current's build label from within ccnet config ?

 

( mail publisher , statistics publisher retreives the good label ... )

 

 

 

 

Reply via email to