Hi Thomas, I think I have fixed this issue now, but ccnetlive is down so I am unable to check the result :-(
Basically the problem is FBVariables is an array and the preprocessor was not handling arrays correctly. The fix involved changed the preprocessor to detect the array and correctly format the dynamic value internally. Craig ________________________________ From: ThomasH <[email protected]> To: ccnet-user <[email protected]> Sent: Fri, 11 December, 2009 9:09:13 PM Subject: [ccnet-user] Problem with dynamic parameters I'm having problem with dynamic parameter. When building the project, ccnet is not able to send the parameters to the finalbuilder script. I have the following config file for my test project <?xml version="1.0" encoding="UTF-8"?> <project xmlns:cb="urn:ccnet.config.builder" name="Test Project" queue="Continuous Integration" queuePriority="10"> <cb:scope projectpath="e:\products\TestProject" svnurl="https://vd- svn01/development/tools/TestProject"> <webURL>http://serverhost1/ccnet</webURL> <workingDirectory>$(projectpath)</workingDirectory> <labeller type="defaultlabeller"> <prefix>Foo-1-</prefix> <incrementOnFailure>true</incrementOnFailure> <labelFormat>00000</labelFormat> </labeller> <cb:include href="default_state.xml" /> <sourcecontrol type="multi"> <sourceControls> <filtered> <sourceControlProvider type="svn"> <trunkUrl>$(svnurl)</trunkUrl> <workingDirectory>$(projectpath)</workingDirectory> <autoGetSource>true</autoGetSource> <timeout units="minutes">120</timeout> <checkExternals>true</checkExternals> <checkExternalsRecursive>true</checkExternalsRecursive> <username>bob-tromso</username> <password>dips1234</password> </sourceControlProvider> <exclusionFilters> <pathFilter> <pattern>**\*</pattern> </pathFilter> <pathFilter> <pattern>**/*</pattern> </pathFilter> </exclusionFilters> </filtered> </sourceControls> </sourcecontrol> <cb:include href="default_trigger.xml" /> <tasks> <FinalBuilder> <ProjectFile>$(projectpath)\Project.fbp6</ProjectFile> <Timeout>7200</Timeout> <FBVariables> <FBVariable name="BUILD_TARGET" value="$[buildType]" /> <FBVariable name="SIGNING_KEY_PASSWORD" value="$[certPasswd]" /> </FBVariables> </FinalBuilder> </tasks> <publishers> <xmllogger/> <!-- send mail to developers when build fails --> </publishers> <parameters> <selectParameter name="buildType"> <display>Release eller test bygg</display> <allowedValues> <value name="Test">TEST</value> <value name="Release" >RELEASE</value> </allowedValues> </selectParameter> <textParameter name="certPasswd"> <display>Sertifikatpassord for release bygg</display> <required>false</required> </textParameter> </parameters> </cb:scope> </project> The finalbuilder script that ccnet runs just outpus the two variables to console, so the output from running the project is: <cruisecontrol project="Test Project"> <request source="HOSTINGVM" buildCondition="ForceBuild">Build (ForceBuild) triggered from HOSTINGVM</request> <parameters> <parameter name="buildType" value="Release" /> <parameter name="certPasswd" value="tewsxdfsdf" /> <parameter name="$CCNetArtifactDirectory" value="M: \CruiseControl.Net\ccnet-bin\server\Test Project\Artifacts" /> <parameter name="$CCNetBuildCondition" value="ForceBuild" /> <parameter name="$CCNetBuildDate" value="2009-12-11" /> <parameter name="$CCNetBuildTime" value="08:53:52" /> <parameter name="$CCNetFailureUsers" value="System.Collections.ArrayList" /> <parameter name="$CCNetIntegrationStatus" value="Unknown" /> <parameter name="$CCNetLabel" value="Foo-1-00006" /> <parameter name="$CCNetLastIntegrationStatus" value="Success" /> <parameter name="$CCNetListenerFile" value="M:\CruiseControl.Net \ccnet-bin\server\Test Project\Artifacts\Test Project_ListenFile.xml" / > <parameter name="$CCNetModifyingUsers" value="System.Collections.ArrayList" /> <parameter name="$CCNetNumericLabel" value="6" /> <parameter name="$CCNetProject" value="Test Project" /> <parameter name="$CCNetProjectUrl" value="http://serverhost1/ ccnet" /> <parameter name="$CCNetRequestSource" value="HOSTINGVM" /> <parameter name="$CCNetUser" value="" /> <parameter name="$CCNetWorkingDirectory" value="e:\products \TestProject" /> </parameters> <modifications /> <integrationProperties> <CCNetArtifactDirectory>M:\CruiseControl.Net\ccnet-bin\server\Test Project\Artifacts</CCNetArtifactDirectory> <CCNetBuildCondition>ForceBuild</CCNetBuildCondition> <CCNetBuildDate>2009-12-11</CCNetBuildDate> <CCNetBuildTime>08:53:52</CCNetBuildTime> <CCNetFailureUsers /> <CCNetIntegrationStatus>Success</CCNetIntegrationStatus> <CCNetLabel>Foo-1-00007</CCNetLabel> <CCNetLastIntegrationStatus>Success</CCNetLastIntegrationStatus> <CCNetListenerFile>M:\CruiseControl.Net\ccnet-bin\server\Test Project\Artifacts\Test Project_ListenFile.xml</CCNetListenerFile> <CCNetModifyingUsers /> <CCNetNumericLabel>7</CCNetNumericLabel> <CCNetProject>Test Project</CCNetProject> <CCNetProjectUrl>http://serverhost1/ccnet</CCNetProjectUrl> <CCNetRequestSource>HOSTINGVM</CCNetRequestSource> <CCNetWorkingDirectory>e:\products\TestProject</ CCNetWorkingDirectory> <CCNetUser /> <LastIntegrationStatus>Success</LastIntegrationStatus> <LastSuccessfulIntegrationLabel>Foo-1-00007</ LastSuccessfulIntegrationLabel> <LastModificationDate>10.12.2009 08:54:06</LastModificationDate> </integrationProperties> <build date="2009-12-11 08:53:52" buildtime="00:00:13" buildcondition="ForceBuild">Variable [BUILD_TARGET] set to [] Variable [SIGNING_KEY_PASSWORD] set to [] Project File: e:\products\TestProject\Project.fbp6 Build Started: 11.12.2009 08:54:05 [Start ActionList: Main] [Log Variable Values [Variables: BUILD_TARGET,SIGNING_KEY_PASSWORD]] Current variable values : BUILD_TARGET = SIGNING_KEY_PASSWORD = Success Build Completed OK Elapsed time: 0hrs 0min 0sec 63msec </build> </cruisecontrol> I'm using the latest and "greatest" ccnet (1.5.6472.1)
