CCNet AsseblyInfo update is not working. is there an issue with my config? - cruisecontrol.net

Below is my config what i am using even though i force a build by doing a check-in, version number of assemblies are not updated.
probably i am missing some thing.
note: new to build servers and this is my first. we have lot of Assemblyinfo.cs files, under different projects.
do i need to use msbuildtaks to get around this? if so can you help with an example.
<cruisecontrol xmlns:cb="urn:ccnet.config.builder" xmlns="http://thoughtworks.org/ccnet/1/8">
<!-- preprocessor settings -->
<cb:define ArtifactsDir="\Artifacts" />
<cb:define ProductNameCompanySvnPath = "D:\CompanySvn\Trunk\Source\"/>
<cb:define TortoiseSvnExe = "C:\Program Files\TortoiseSVN\bin\svn.exe"/>
<cb:define SvnPathToBuild = "http://dummy.mummy.com/svn/Company/branches/Branch-meau/" />
<cb:define NantExecutablePath = "C:\Program Files\NANT\bin\nant.exe"/>
<cb:define BranchNameCI="_BR_Meau_CI"/>
<cb:define BuildMode = "Release"/>
<cb:define PlatformCpu = "X86"/>
<cb:define MsBuildExecutable = "C:\Windows\Microsoft.NET\Framework64\v3.5\msbuild.exe" />
<cb:define MajorVersionNumber = "4"/>
<cb:define MinorVersionNumber = "1"/>
<cb:define name="svn_ci_ProductName">
<executable>$(TortoiseSvnExe)</executable>
<workingDirectory>$(ProductNameCompanySvnPath)ProductName.Company\</workingDirectory>
<trunkUrl>$(SvnPathToBuild)ProductName.Company/</trunkUrl>
<cleanUp>true</cleanUp>
<autoGetSource>true</autoGetSource>
</cb:define>
<cb:define name="svn_ci_Database">
<executable>$(TortoiseSvnExe)</executable>
<workingDirectory>$(ProductNameCompanySvnPath)Database\</workingDirectory>
<trunkUrl>$(SvnPathToBuild)Database/</trunkUrl>
<cleanUp>true</cleanUp>
<autoGetSource>true</autoGetSource>
</cb:define>
<cb:define name="svn_ci_ThirdParty">
<executable>$(TortoiseSvnExe)</executable>
<workingDirectory>$(ProductNameCompanySvnPath)ThirdParty\</workingDirectory>
<trunkUrl>$(SvnPathToBuild)ThirdParty/</trunkUrl>
<cleanUp>true</cleanUp>
<autoGetSource>true</autoGetSource>
</cb:define>
<cb:define name="svn_ci_Release">
<executable>$(TortoiseSvnExe)</executable>
<workingDirectory>$(ProductNameCompanySvnPath)Release\</workingDirectory>
<trunkUrl>$(SvnPathToBuild)Release/</trunkUrl>
<cleanUp>true</cleanUp>
<autoGetSource>true</autoGetSource>
</cb:define>
<project name="Company_SVN_Build" description="Build Trunk after merge.">
<workingDirectory>$(ProductNameCompanySvnPath)ProductName.Company\</workingDirectory>
<!--<triggers>
check the source control every X time for changes, and run the tasks if changes are found
<intervalTrigger name="continuous" seconds="30" buildCondition="IfModificationExists" initialSeconds="5"/>
</triggers>-->
<triggers>
<intervalTrigger name="continuous" seconds="180" buildCondition="IfModificationExists" initialSeconds="30" />
</triggers>
<labeller type="assemblyVersionLabeller">
<major>$(MajorVersionNumber)</major>
<minor>$(MinorVersionNumber)</minor>
<incrementOnFailure>true</incrementOnFailure>
</labeller>
<!-- get all the souce from the branch required to build the binaries. -->
<sourcecontrol type="multi">
<sourceControls>
<svn>
<cb:svn_ci_ProductName/>
</svn>
<svn>
<cb:svn_ci_Database/>
</svn>
<svn>
<cb:svn_ci_ThirdParty/>
</svn>
<svn>
<cb:svn_ci_Release/>
</svn>
</sourceControls>
</sourcecontrol>
<tasks>
<msbuild>
<executable>$(MsBuildExecutable)</executable>
<projectFile>$(ProductNameCompanySvnPath)ProductName.Company\ProductName.Company.sln</projectFile>
<buildArgs>/p:Configuration=Release /p:Platform=$(PlatformCpu) /v:diag</buildArgs>
<targets>clean</targets>
<timeout>9000</timeout>
<logger>C:\Program Files (x86)\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger>
</msbuild>
<msbuild>
<executable>$(MsBuildExecutable)</executable>
<projectFile>$(ProductNameCompanySvnPath)ProductName.Company\ProductName.Company.sln</projectFile>
<buildArgs>/p:Configuration=Release /p:Platform=$(PlatformCpu) /v:diag</buildArgs>
<targets>Build</targets>
<timeout>9000</timeout>
<logger>C:\Program Files (x86)\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger>
</msbuild>
<exec>
<executable>Prepare_ProductName_Release.bat</executable>
<baseDirectory>$(ProductNameCompanySvnPath)Release</baseDirectory>
<buildArgs>all</buildArgs>
<buildTimeoutSeconds>100</buildTimeoutSeconds>
</exec>
</tasks>
<!-- all plublishers are listed below -->
<publishers>
<xmllogger />
<artifactcleanup cleanUpMethod="KeepLastXBuilds" cleanUpValue="50" />
</publishers>
</project>
<!-- End Projects -->
</cruisecontrol>

If I'm reading this correctly:
CC.NET is not going to tag your Assemblyinfo.cs files. You have to do that yourself.
The "Version" in the CC.NET context is the Cardinal/Ordinal number of the build. Your first build will be "1", then "2", etc, etc.
See my AssemblyInfo.cs "tagging" example here:
Use SVN Revision to label build in CCNET
I prefer to tag it with the SVN revision. You may use the CC.NET version.
The way I think of CC.NET is "a big super fancy msbuild caller" "with some post build reporting".

Related

CCNET Config Conditional Task Execution

Hi all require help on CCNet Conditional execution.
These are the Triggers I have declared
<intervalTrigger
name="continuous"
seconds="30"
buildCondition="IfModificationExists"
initialSeconds="5"/>
<scheduleTrigger time="23:30" buildCondition="ForceBuild" name="scheduled">
<weekDays>
<weekDay>Monday</weekDay>
</weekDays>
</scheduleTrigger>
</triggers>
Below is the Task I am Having both to be triggered based on Condition
<conditional>
<conditions>
<compareCondition value1="$[buildCondition]"
value2="IfModificationExists" />
</conditions>
<tasks>
<msbuild >
<executable>...\v4.0.30319\MSBuild.exe</executable>
<workingDirectory>...\WcfServiceLibrary1\</workingDirectory>
<projectFile>MSBuild_MasterConfigFile.BUILD</projectFile>
<buildArgs>/target:CCNETBUILD /p:Config=Debug</buildArgs>
<timeout>900</timeout>
</msbuild>
<elseTasks>
<msbuild ><executable>...\v4.0.30319\MSBuild.exe</executable>
<workingDirectory>...\WcfServiceLibrary1\</workingDirectory>
<projectFile>MSBuild_MasterConfigFile.BUILD</projectFile>
<buildArgs>/target:CCNETDeploy /p:Config=Debug</buildArgs>
<timeout>900</timeout>
</msbuild>
</elseTasks>
</conditional>
I am getting unused node detected exception. Please help me asap. Thanks in advance.
It is difficult to tell from your code sample, but did you check that the <Conditionals> node is embedded within a <tasks>...</tasks> node in your project declaration?
In other words:
<project>
<tasks>
<conditional>...</conditional>
</tasks>
</project>
and not
<project>
<conditional>...</conditional>
</project>

Not able to see the FxCop Report embeded in the Email using CruiseControl.Net

I have installed Cruise Control 1.5 on my machine and trying to configure the automated build. Everything is working fine. Application is building, i receive an email but I don't see the FXCop result embedded in the Build Email. What am i missing?
ccnet.config file
<cruisecontrol xmlns:cb="urn:ccnet.config.builder">
<project name="SampleProject">
<webURL>http://localhost/ccnet</webURL>
<workingDirectory>E:\\NewProject\\DevBuilds</workingDirectory>
<artifactDirectory>E:\\NewProject\\DevBuilds\Artifacts</artifactDirectory>
<modificationDelaySeconds>600</modificationDelaySeconds>
<category>Dev Build</category>
<sourcecontrol type="svn">
<trunkUrl>https://mycompany.com/svn/trunk/MyApplication</trunkUrl>
<workingDirectory>E:\\NewProject\\DevBuilds\SourceCode</workingDirectory>
<autoGetSource>false</autoGetSource>
<executable>C:\Program Files\Subversion\bin\svn.exe</executable>
<username>username</username>
<password>password</password>
</sourcecontrol>
<initialState>Started</initialState>
<startupMode>UseInitialState</startupMode>
<triggers>
<intervalTrigger seconds="3600" buildCondition="IfModificationExists" />
</triggers>
<state type="state" directory="E:\\NewProject\\DevBuilds" />
<labeller type="iterationlabeller">
<prefix>1.0</prefix>
<duration>1</duration>
<releaseStartDate>2012/04/11</releaseStartDate>
<separator>.</separator>
</labeller>
<tasks>
<nant>
<executable>E:\NewProject\Installables\nant\bin\nant.exe</executable>
<baseDirectory>E:\\NewProject\\Build Files</baseDirectory>
<buildFile>Build.xml</buildFile>
<targetList>
<target>Run</target>
</targetList>
<buildTimeoutSeconds>5000</buildTimeoutSeconds>
</nant>
</tasks>
<publishers>
<merge>
<files>
<file>E:\NewProject\DevBuilds\FxCopOutput\FxCop-results.xml</file>
</files>
</merge>
<xmllogger logDir="E:\\NewProject\\DevBuilds\Artifacts\\buildlogs" />
<email from="Checkins#symphonysv.com" mailhost="smtp.gmail.com" includeDetails="true" useSSL="false">
<users>
<user name="dev1" group="buildmaster" address="myname#gmail.com"/>
</users>
<groups>
<group name="buildmaster">
<notifications>
<notificationType>Always</notificationType>
</notifications>
</group>
</groups>
</email>
</publishers>
</project>
</cruisecontrol>
Build.xml
<?xml version="1.0"?>
<project name="Test" default="Run" basedir=".">
<property name="BuildNumber" value="1.0.0.0"/>
<property name="SourceControlURL" value="https://mycompany.com/svn/trunk/MyApplication/"/>
<property name="BuildFile" value=".\Build.xml"/>
<property name="TagBuild" value="false"/>
<property name="BuildType" value="Release"/>
<property name="BuildTargetDir" value="E:\NewProject\DevBuilds\Executables"/>
<property name="BuildWorkDir" value="E:\NewProject\DevBuilds\SourceCode"/>
<property name="MSBUILD" value="C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319"/>
<property name="FxCopOutPutDirectory" value="E:\NewProject\DevBuilds\FxCopOutput" />
<property name="FxCopInputDirectory" value="E:\NewProject\DevBuilds" />
<target name="Run" description="Starting ThinkPets Build">
<call target="GetLatestCode"/>
<call target="BuildCode"/>
<call target="BuildASPWebSite"/>
<call target="runFxCop"/>
</target>
<target name="GetLatestCode">
<echo message="Updating Code From SVN to ${BuildWorkDir}"/>
<exec program="svn.exe">
<arg line="checkout ${SourceControlURL} ${BuildWorkDir} -q"/>
</exec>
</target>
<target name="BuildCode">
<echo message="Building VS10 Projects Web" />
<exec program="${MSBUILD}\msbuild.exe" failonerror="true">
<arg line=" "${BuildWorkDir}\Application.sln" /t:Rebuild /p:Configuration=Release /V:q"/>
</exec>
</target>
<target name="BuildASPWebSite">
<echo message="Building ASP Web Site" />
<exec program="${MSBUILD}\aspnet_compiler.exe" failonerror="true">
<arg line=" -v / -p "${BuildWorkDir}\MyDir" -f -c "${BuildTargetDir}" "/>
</exec>
</target>
<target name="runFxCop" depends="BuildCode">
<exec program="C:\Program Files\Microsoft FxCop 1.36\FxCopCmd.exe" failonerror="false">
<arg line="/p:${FxCopInputDirectory}\SampleProject.FxCop /o:${FxCopOutPutDirectory}\FxCop-results.xml"/>
</exec>
</target>
</project>
There are a few points you missed:
You need to add <includeDetails>true</includeDetails> to your e-mail publisher block. This will give you HTML e-mails.
In order to transform your XML build results into HTML you need to add an <xslFiles> section to your e-mail publisher block. The elements of this block point to XSL transformation files in [CCNET_INSTALL_DIR]\server\xsl.
So for including the FxCop summary just as appears in CCNET webdasboard this is your e-mail publisher block:
<email from="Checkins#symphonysv.com" mailhost="smtp.gmail.com" includeDetails="true" useSSL="false">
<users>
<user name="dev1" group="buildmaster" address="myname#gmail.com"/>
</users>
<groups>
<group name="buildmaster">
<notifications>
<notificationType>Always</notificationType>
</notifications>
</group>
</groups>
<includeDetails>true</includeDetails>
<xslFiles>
<file>xsl\fxcop-summary_1_36.xsl</file>
</xslFiles>
</email>
Thanks Chairman for your valuable time. I think my mistake was that I did not host the "ccnet" application on my machine which resulted in not able to find the xsls for the publishers. When I used the same settings and config file on the Server machine with "ccnet" application hosted, I was able to see the FxCop summary in the email. Please correct my understanding if wrong.

Stop windows service before CruiseControl.NET get latest

I'm trying to figure out how to run a bat file that stops a windows service before the CruiseControl.NET project gets latest, as it'll fail saying the files are in use (by the running windows service.) I can't figure out how to run a task before it gets latest, as the source control block isn't a task, it's directly under the project node.
<project name="projectname" queue="queuename" queuePriority="1">
<workingDirectory>C:\Build</workingDirectory>
<category>companyname</category>
<webURL>http://ip/ccnet/server/local/project/projectname/ViewProjectReport.aspx</webURL>
<triggers>
<intervalTrigger seconds="60" />
</triggers>
<modificationDelaySeconds>60</modificationDelaySeconds>
&sc;
<tasks>
<msbuild>
<executable>C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe</executable>
<workingDirectory>C:\Build\Web\H4</workingDirectory>
<projectFile>solution.sln</projectFile>
<buildArgs>/v:quiet /noconlog /p:Configuration=Debug</buildArgs>
<targets>Build</targets>
<timeout>900</timeout>
<logger>C:\Program Files\CruiseControl.NET\server\Rodemeyer.MsBuildToCCnet.dll</logger>
</msbuild>
<exec>
<executable>deleteTestResults.bat</executable>
<baseDirectory>C:\Build\Test\TestCases\H4Test</baseDirectory>
<buildArgs></buildArgs>
<buildTimeoutSeconds>30</buildTimeoutSeconds>
</exec>
<exec>
<executable>C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\mstest.exe</executable>
<baseDirectory>C:\Build\Test\TestCases\</baseDirectory>
<buildArgs>/testcontainer:testproject\bin\debug\testproject.dll /runconfig:localtestrun.Testrunconfig /resultsfile:H4Test\testResults.trx</buildArgs>
<buildTimeoutSeconds>900</buildTimeoutSeconds>
</exec>
</tasks>
<publishers>
<merge>
<files>
<file>C:\Build\Test\TestCases\testproject\testResults.trx</file>
</files>
</merge>
<xmllogger logDir="C:\Program Files\CruiseControl.NET\Logs\companyname\projectname\" />
</publishers>
</project>
Any help would be greatly appreciated, thanks,
Justin
Can't you just add a new exec before the msbuild task:
i.e.
<tasks>
<exec>
<executable>StopMyServices.bat</executable>
<baseDirectory>C:\Build\Test\TestCases\H4Test</baseDirectory>
<buildArgs></buildArgs>
<buildTimeoutSeconds>30</buildTimeoutSeconds>
</exec>
<msbuild>
<executable>C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe</executable>
<workingDirectory>C:\Build\Web\H4</workingDirectory>
<projectFile>solution.sln</projectFile>
<buildArgs>/v:quiet /noconlog /p:Configuration=Debug</buildArgs>
<targets>Build</targets>
<timeout>900</timeout>
<logger>C:\Program Files\CruiseControl.NET\server\Rodemeyer.MsBuildToCCnet.dll</logger>
</msbuild>
<exec>
<executable>deleteTestResults.bat</executable>
<baseDirectory>C:\Build\Test\TestCases\H4Test</baseDirectory>
<buildArgs></buildArgs>
<buildTimeoutSeconds>30</buildTimeoutSeconds>
</exec>
<exec>
<executable>C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\mstest.exe</executable>
<baseDirectory>C:\Build\Test\TestCases\</baseDirectory>
<buildArgs>/testcontainer:testproject\bin\debug\testproject.dll /runconfig:localtestrun.Testrunconfig /resultsfile:H4Test\testResults.trx</buildArgs>
<buildTimeoutSeconds>900</buildTimeoutSeconds>
</exec>
</tasks>

issues in cc.net (cruisecontrol.net) with uppercut

I have installed uppercut integrated cc.net such a way that i didnt make any change in webdashboard,
This is my cc.net config code,
-->
-->
<!-- PROJECT STRUCTURE -->
<cb:define name="WindowsFormsApplication1">
<project name="$(projectName)">
<workingDirectory>$(working_directory)\$(projectName)</workingDirectory>
<artifactDirectory>$(drop_directory)\$(projectName)</artifactDirectory>
<category>$(projectName)</category>
<queuePriority>$(queuePriority)</queuePriority>
<triggers>
<intervalTrigger name="continuous" seconds="60" buildCondition="IfModificationExists" />
</triggers>
<sourcecontrol type="svn">
<executable>c:\program files\subversion\bin\svn.exe</executable>
<!--<trunkUrl>http://192.168.1.8/trainingrepos/deepasundari/WindowsFormsApplication1</trunkUrl>-->
<trunkUrl>$(svnPath)</trunkUrl>
<workingDirectory>$(working_directory)\$(projectName)</workingDirectory>
</sourcecontrol>
<tasks>
<msbuild>
<executable>C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe</executable>
<workingDirectory>$(working_directory)\$(projectName)</workingDirectory>
<projectFile>WindowsFormsApplication1.sln</projectFile>
<timeout>600</timeout>
<buildArgs> /noconsolelogger /p:configuration=Debug </buildArgs>
<!--<buildArgs>/noconsolelogger /p:OutputPath=$(drop_directory)\$(projectName)\sample </buildArgs>-->
<logger>ThoughtWorks.CruiseControl.MsBuild.XmlLogger,C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger>
</msbuild>
<!--<labeller type="svnRevisionLabeller">
<prefix>Test-</prefix>
<major>7</major>
<minor>11</minor>
<url>$svnpath</url>
<username>deepasundari</username>
<password>deepasundari</password>
</labeller>-->
<exec>
<executable>$(working_directory)\$(projectName)\build.bat</executable>
</exec>
</tasks>
<publishers>
<!--<buildpublisher>
--><!--<sourceDir>C:\myprojects\project1</sourceDir>--><!--
<publishDir>$(working_directory)\$(projectName)</publishDir>
</buildpublisher>-->
<merge>
<files>
<file>$(working_directory)\$(projectName)\build_output\build_artifacts\*.xml</file>
<file>$(working_directory)\$(projectName)\build_output\build_artifacts\mbunit\*-results.xml</file>
<file>$(working_directory)\$(projectName)\build_output\build_artifacts\nunit\*-results.xml</file>
<file>$(working_directory)\$(projectName)\build_output\build_artifacts\ncover\*-results.xml</file>
<file>$(working_directory)\$(projectName)\build_output\build_artifacts\ndepend\*.xml</file>
</files>
</merge>
<!--<email from="buildserver#somewhere.com" mailhost="smtp.somewhere.com" includeDetails="TRUE">
<users>
<user name="YOUR NAME" group="BuildNotice" address="yourEmail#somewhere.com" />
</users>
<groups>
<group name="BuildNotice" notification="change" />
</groups>
</email>-->
<xmllogger/>
<statistics>
<statisticList>
<firstMatch name="Svn Revision" xpath="//modifications/modification/changeNumber" />
<firstMatch name="ILInstructions" xpath="//ApplicationMetrics/#NILInstruction" />
<firstMatch name="LinesOfCode" xpath="//ApplicationMetrics/#NbLinesOfCode" />
<firstMatch name="LinesOfComment" xpath="//ApplicationMetrics/#NbLinesOfComment" />
</statisticList>
</statistics>
<modificationHistory onlyLogWhenChangesFound="true" />
<rss/>
</publishers>
</project>
</cb:define>
<cb:WindowsFormsApplication1 projectname="WindowsFormsApplication1" queuepriority="1" svnpath="http://192.168.1.8/trainingrepos/deepasundari/WindowsFormsApplication1" />
this code is updating rss and report xml files, but i could not get the build folder in the code_drop..
could anyone help me with this problem??
It looks like you have followed the sample almost perfectly. http://uppercut.googlecode.com/svn/trunk/docs/Samples/CC.NET/server/ccnet.config
What you should see in the code_drop folder on the build server is a folder b##-r## for build and revision per each build.
Most of this is talked about in here: http://uppercut.googlecode.com/svn/trunk/docs/IntegrateUppercuTWithCruiseControl.NET.doc

CCNet 1.6 Conditional Plugin Help Needed!

I cannot get the conditional plugin to work that has been added to CCNet as of version 1.6 - clicky. I am running the latest version of CCNet (1.6.7258.1) and have the following code in my ccnet.config:
<project name="9iCompile">
<sourcecontrol type="svn">
<trunkUrl>http://bis-build:81/svn/Oracle/oas_forms/COPEN</trunkUrl>
<workingDirectory>C:\OAS\COPEN</workingDirectory>
<username>*</username>
<password>*</password>
<executable>C:\Program Files\VisualSVN\bin\svn.exe</executable>
</sourcecontrol>
<conditional>
<conditions>
<compareCondition>
<value1>$[ProjectType]</value1>
<value2>copen</value2>
<evaluation>equal</evaluation>
<ignoreCase>true</ignoreCase>
</compareCondition>
</conditions>
<tasks>
<nant>
<executable>C:\Program Files\nant-0.85\bin\nant.exe</executable>
<baseDirectory>C:\OAS</baseDirectory>
<buildFile>Oracle9i_Automation_v2.build</buildFile>
<targetList>
<target>build</target>
</targetList>
</nant>
</tasks>
</conditional>
<!-- more conditional statements would be here for different project types if I can get it to work -->
<parameters>
<selectParameter name="ProjectType">
<description>The type of project to operate on.</description>
<allowedValues>
<value name="COPEN">copen</value>
<value name="BCS">bcs</value>
<value name="FCDD">fcdd</value>
</allowedValues>
</selectParameter>
</parameters>
<security type="defaultProjectSecurity" defaultRight="Deny">
<permissions>
<rolePermission name="Developers" ref="Developers"/>
<rolePermission name="Accepters" ref="Accepters"/>
<rolePermission name="Releasers" ref="Releasers"/>
<rolePermission name="Administrators" ref="Administrators"/>
</permissions>
</security>
</project>
The CCNet server crashes whenever I try to run this config though with
the following output:
[14:ERROR] Exception: Unused node detected:
<conditional>
<conditions>
<compareCondition>
<value1>$[ProjectType]</value1>
<value2>copen</value2>
<evaluation>equal</evaluation>
<ignoreCase>true</ignoreCase>
</compareCondition>
</conditions>
<tasks>
<nant>
<executable>C:\Program Files\nant-0.85\bin\nant.exe</executable>
<baseDirectory>C:\OAS</baseDirectory>
<buildFile>Oracle9i_Automation_v2.build</buildFile>
<targetList>
<target>build</target>
</targetList>
</nant>
</tasks>
</conditional>
----------
ThoughtWorks.CruiseControl.Core.Config.ConfigurationException: Unused
node detected:
<conditional>
<conditions>
<compareCondition>
<value1>$[ProjectType]</value1>
<value2>copen</value2>
<evaluation>equal</evaluation>
<ignoreCase>true</ignoreCase>
</compareCondition>
</conditions>
<tasks>
<nant>
<executable>C:\Program Files\nant-0.85\bin\nant.exe</executable>
<baseDirectory>C:\OAS</baseDirectory>
<buildFile>Oracle9i_Automation_v2.build</buildFile>
<targetList>
<target>build</target>
</targetList>
</nant>
</tasks>
</conditional>
at ThoughtWorks.CruiseControl.Core.Config.NetReflectorConfigurationReader.Defa­ultErrorProcesser.ProcessError(String message)
at ThoughtWorks.CruiseControl.Core.Config.NetReflectorConfigurationReader.<>c_­_DisplayClass1.<Read>b__0(InvalidNodeEventArgs args)
at Exortech.NetReflector.InvalidNodeEventHandler.Invoke(InvalidNodeEventArgsar­gs)
at Exortech.NetReflector.NetReflectorTypeTable.OnInvalidNode(InvalidNodeEventA­rgs args)
at Exortech.NetReflector.XmlTypeSerialiser.HandleUnusedNode(NetReflectorTypeTa­ble table, XmlNode orphan)
at Exortech.NetReflector.XmlTypeSerialiser.ReadMembers(XmlNode node, Object instance, NetReflectorTypeTable table)
at Exortech.NetReflector.XmlTypeSerialiser.Read(XmlNode node, NetReflectorTypeTable table)
at Exortech.NetReflector.NetReflectorReader.Read(XmlNode node)
at ThoughtWorks.CruiseControl.Core.Config.NetReflectorConfigurationReader.Read­(XmlDocument document, IConfigurationErrorProcesser errorProcesser)
at ThoughtWorks.CruiseControl.Core.Config.DefaultConfigurationFileLoader.Load(­FileInfo configFile)
at ThoughtWorks.CruiseControl.Core.Config.FileConfigurationService.Load()
at ThoughtWorks.CruiseControl.Core.Config.FileWatcherConfigurationService.Load­()
at ThoughtWorks.CruiseControl.Core.Config.CachingConfigurationService.Load()
at ThoughtWorks.CruiseControl.Core.CruiseServer.Restart()
at ThoughtWorks.CruiseControl.Core.Config.ConfigurationUpdateHandler.Invoke()
at ThoughtWorks.CruiseControl.Core.Config.FileWatcherConfigurationService.Hand­leConfigurationFileChanged(Object source, FileSystemEventArgs args)
----------
Can someone please help?? I have no idea what I'm doing wrong here or
if this is a bug :( I have also posted on the ccnet-user group several days ago but have not received any response :(
I have received a response from the ccnet-user group now. The conditional block is in fact a task type so needs to be in a tasks or publishers element.

Resources