Hi Ruben, I just reinstalled CCNet to version 1.6, but I get a similar error using the same code. Do you have any ideas why? Is my syntax or usage of dynamic parameter calls to $[ProjectType] and $[OperationType] incorrect? Or do I need to declare <dynamicValues> somewhere in my <conditional> block (I don't fully understand how to use dynamicValues)? Thanks in advance!
On Apr 28, 3:28 pm, Ruben Willems <[email protected]> wrote: > Hi > > The conditional plugin is part of the 1.6 branch (the trunk) > So it is natively supported in ccnet. > > with kind regards > Ruben Willems > > On Wed, Apr 28, 2010 at 5:13 AM, Mike M <[email protected]> wrote: > > Hi Andrew, > > > Unfortunately I am not able to answer your question, but after seeing > > your code I have tried to implement some functionality using the > > conidtional plugin and am having some difficulties making it work. I > > am assuming the one you are using is from > >http://ccnetconditional.codeplex.com/. > > I downloaded this and put it in the server folder and have the > > following code in my project: > > > <!-- omitted for brevity --> > > > <conditional> > > <conditions> > > <compareCondition value1="$[ProjectType]" value2="copen" > > evaluation="equal" ignoreCase="true"/> > > <compareCondition value1="$[OperationType]" value2="compile" > > evaluation="equal" ignoreCase="true"/> > > </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> > > <buildArgs>xxx</buildArgs> > > </nant> > > </tasks> > > <elsetasks/> > > </conditional> > > > <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> > > <selectParameter name="OperationType"> > > <description>The type of operation to do.</description> > > <allowedValues> > > <value name="Compile?">compile</value> > > <value name="Compile and deploy?">compiledeploy</value> > > </allowedValues> > > </selectParameter> > > </parameters> > > > <!-- omitted for brevity --> > > > However, when I try to start the CCNet server, it crashes with the > > following error: > > > [1:ERROR] INTERNAL ERROR: Unable to load types from assembly > > CCNet.Conditional.Plugin, Version=1.0.0.0, Culture=neutral, > > PublicKeyToken=null: > > Failed to load 1 of the 17 types defined in the assembly. > > Exceptions: > > - Unable to load type: CCNet.Conditional.Plugin.GeneralTaskResult > > Exception: System.TypeLoadException: Method 'CheckIfSuccess' > > in type 'CCNet.Conditional.Plugin.GeneralTaskResult' from assembly > > 'CCNet.Conditional.Plugin, Version=1.0.0.0, Culture=neutral, > > PublicKeyToken=null' does not have an implementation. > > ---------- > > Exortech.NetReflector.NetReflectorTypeLoadException: Unable to load > > types from assembly CCNet.Conditional.Plugin, Version=1.0.0.0, > > Culture=neutral, PublicKeyToken=null:Failed to load 1 of the 17 types > > defined in the assembly. > > Exceptions: > > - Unable to load type: CCNet.Conditional.Plugin.GeneralTaskResult > > Exception: System.TypeLoadException: Method 'CheckIfSuccess' > > in type 'CCNet.Conditional.Plugin.GeneralTaskResult' from assembly > > 'CCNet.Conditional.Plugin, Version=1.0.0.0, Culture=neutral, > > PublicKeyToken=null' does not have an implementation. > > at Exortech.NetReflector.NetReflectorTypeTable.GetTypes(Assembly > > assembly) > > at Exortech.NetReflector.NetReflectorTypeTable.Add(Assembly > > assembly) > > at Exortech.NetReflector.NetReflectorTypeTable.Add(String > > assemblyFilename) > > at Exortech.NetReflector.NetReflectorTypeTable.Add(String path, > > String searchPattern) > > at > > > ThoughtWorks.CruiseControl.Core.Config.NetReflectorConfigurationReader..ctor() > > at > > > ThoughtWorks.CruiseControl.Core.CruiseServerFactory.NewConfigurationService(String > > configFile) > > at > > ThoughtWorks.CruiseControl.Core.CruiseServerFactory.CreateLocal(String > > configFile) > > at > > ThoughtWorks.CruiseControl.Core.CruiseServerFactory.CreateRemote(String > > configFile) > > at > > ThoughtWorks.CruiseControl.Core.CruiseServerFactory.Create(Boolean > > remote, String configFile) > > at ThoughtWorks.CruiseControl.Core.ConsoleRunner.LaunchServer() > > at ThoughtWorks.CruiseControl.Core.ConsoleRunner.Run() > > at ThoughtWorks.CruiseControl.Console.AppRunner.Run(String[] args, > > Boolean usesShadowCopying) > > ---------- > > > Do you have any ideas on how to fix this issue? Thanks in advance! > > > On Apr 28, 5:01 am, Andrew Hayes <[email protected]> wrote: > > > I'm still struggling with this; any clues anyone could suggest would be > > very > > > helpful... > > > > Thanks > > > Andrew > > > > -----Original Message----- > > > From: [email protected] [mailto:[email protected]] > > On > > > Behalf Of andrew > > > Sent: Friday, April 16, 2010 9:12 AM > > > To: ccnet-user > > > Subject: [ccnet-user] Using named values in condition blocks > > > > We are running two basic types of builds: Normal and Nightly "Big" > > > builds. Normal builds on changes to the depot; and doesn't build some > > > of the really big projects we have. Nightly builds everything; and so > > > we restrict that to run once a day; starting at 1am. > > > > Our trigger has this block: > > > <parameterTrigger> > > > <trigger type="scheduleTrigger" time="01:00" > > > buildCondition="ForceBuild" name="Nightly post-scorch build" /> > > > <parameters> > > > <namedValue name="isNightlyBuild" value="yes"/ > > > > </parameters> > > > </parameterTrigger> > > > > We also want users, when forcing a build, to have the option of > > > running a nightly build as well; so we are using parameters for that. > > > Our project definition has this block: > > > > <parameters> > > > <selectParameter> > > > <name>isNightlyBuild</name> > > > <allowedValues> > > > <value name="Nightly Big-Build">yes</value> > > > <value name="Normal Build">no</value> > > > </allowedValues> > > > <display>Nightly BIG Build?</display> > > > <description>removed for brevity...</description> > > > <default>Normal Build</default> > > > <required>false</required> > > > </selectParameter> > > > </parameters> > > > > To scope what is/is not built we installed the Conditional plugin. > > > > To test what is happening we added this line to the top of our tasks > > > block: > > > <!-- Output the build type to the log --> > > > <conditional description="Log state of isNightlyBuild > > > flag"> > > > <conditions> > > > <compareCondition value1="$[isNightlyBuild]" > > > value2="yes" evaluation="equal" ignoreCase="true"/> > > > </conditions> > > > <tasks> > > > <commentTask message="isNightlybuild is true"/ > > > > </tasks> > > > <elseTasks> > > > <commentTask message="isNightlybuild is false"/ > > > > </elseTasks> > > > </conditional> > > > > The problem is that if you start the build with a force, and set > > > isNightlyBuild to Yes; it works (logs as you would expect); but the > > > NIGHTLY trigger at 1am does not seem to set this flag correctly. > > > > Any suggestions? > > > > Thanks > > > Andrew > > > > -- > > > Subscription settings: > >http://groups.google.com/group/ccnet-user/subscribe?hl=en > > > > smime.p7s > > > 4KViewDownload- Hide quoted text - > > > > - Show quoted text -
