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 ... )
