Hi Mac,

I tried changing it to the publishers section but that didn't make any
difference. Obviously this is one of those bugs designed to test the limit
of our abilities :-(


Craig

-----Original Message-----
From: [email protected] [mailto:[email protected]] On
Behalf Of Mac
Sent: Tuesday, 22 February 2011 8:44 p.m.
To: ccnet-user
Subject: [ccnet-user] Re: Conditional and FTP tasks handling of relative
directories

Hi Craig,

Our configuration is quite big right now, and makes intensive use of
preprocessing. I will try to write a simple test case.
In the meantime, the only difference I can see from your simple
configuration is that my conditional publishing tasks are in the publishers
section (not the tasks one). Maybe that would be a key point for this
problem.

Thanks for your help.

Mac

On 21 fév, 20:50, "Craig Sutherland" <[email protected]>
wrote:
> Hi Mac,
>
> Thanks for the additional feedback. I've tried to track down what is 
> causing this problem but without any success :-(
>
> I have modified the BuildPublisher task to both provide additional 
> logging and to explicitly check for the presence of the source 
> directory (and to report when not found.) From the looks of things it 
> is correctly generating the relative directory name, so I'm not sure where
else to look.
>
> Here is the configuration that I am using:
> <cruisecontrol xmlns="http://thoughtworks.org/ccnet/1/6";
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
>   <project name="RelativeFolders">
>     <workingDirectory>C:\Temp\Working</workingDirectory>
>     <artifactDirectory>C:\Temp\Artifact</artifactDirectory>
>     <tasks>
>       <conditional>
>         <conditions>
>           <folderExistsCondition>
>             <folder>C:\NewFolder</folder>
>           </folderExistsCondition>
>         </conditions>
>         <tasks>
>           <buildpublisher>
>             <alwaysPublish>true</alwaysPublish>
>             <sourceDir>SomeWhere</sourceDir>
>             <publishDir>ElseWhere</publishDir>
>           </buildpublisher>
>         </tasks>
>         <elseTasks>
>           <buildpublisher>
>             <alwaysPublish>true</alwaysPublish>
>             <sourceDir>SomeWhere</sourceDir>
>             <publishDir>ElseWhere</publishDir>
>           </buildpublisher>
>         </elseTasks>
>       </conditional>
>     </tasks>
>   </project>
> </cruisecontrol>
>
> And I get the following output in the log:
> [RelativeFolders:DEBUG] Checking conditions [RelativeFolders:DEBUG] 
> Checking for folder 'C:\NewFolder'
> [RelativeFolders:INFO] Conditions passed - running tasks 
> [RelativeFolders:DEBUG] Starting task 'BuildPublisher [0]'
> [RelativeFolders:DEBUG] Publish directory is 'C:\Temp\Artifact\ElseWhere'
> [RelativeFolders:DEBUG] Source directory is 'C:\Temp\Working\SomeWhere'
> [RelativeFolders:WARN] Source directory 'C:\Temp\Working\SomeWhere' 
> does not exist - cancelling task [RelativeFolders:INFO] Tasks 
> completed: 0 successful, 1 failed [RelativeFolders:INFO] Integration 
> complete: Failure - 22/02/2011 8:26:20 a.m.
>
> Are you able to provide an example configuration where this problem
occurs?
>
> Craig
>
> -----Original Message-----
> From: [email protected] [mailto:[email protected]] 
> On
>
> Behalf Of Mac
> Sent: Tuesday, 22 February 2011 5:02 a.m.
> To: ccnet-user
> Subject: [ccnet-user] Re: Conditional and FTP tasks handling of 
> relative directories
>
> Hi Craig,
>
> I made some further tests and it appears that:
>  * buildpublisher/sourceDir understands relative paths in general.
>  * buildpublisher/sourceDir does *not* understand relative paths when 
> used inside a conditional task. This is the behaviour that puzzled me
before.
>
> This behaviour is hard to detect, because the buildpublisher does not 
> complain (and/or output any trace) when the source directory does not
exist.
>
> Seen from (very, very) far away, I would say something unexpected 
> happens when cloning the integration result (line 408 in
ConditionalTask.cs,http://ccnet.svn.sourceforge.net/viewvc/ccnet/trunk/proje
ct/core/task...
> tionalTask.cs?revision=7881&view=markup).
>
> Mac
>
> On 21 fév, 16:22, Mac <[email protected]> wrote:
> > Hi Craig,
>
> > Thank you for taking care of this matter.
>
> > I was pretty sure I tested a relative path and that it did not work.
> > But the code seems to be taking care of relative paths alright, so I 
> > checked again (with TRACE level logs) and it seems I was wrong.
> > Paths in the folderExistsCondition *are* relative Sorry for this 
> > false alarm.
>
> > Mathieu
>
> > On 18 fév, 01:35, "Craig Sutherland" <[email protected]>
> > wrote:
>
> > > Hi Mac,
>
> > > I have gone and updated the Ftp task to use relative paths - 
> > > however it looks like the path in folderExistsCondition is already 
> > > a relative
> path?
>
> > > Craig
>
> > > -----Original Message-----
> > > From: [email protected]
> > > [mailto:[email protected]] On
>
> > > Behalf Of Mac
> > > Sent: Wednesday, 16 February 2011 3:16 a.m.
> > > To: ccnet-user
> > > Subject: [ccnet-user] Conditional and FTP tasks handling of 
> > > relative directories
>
> > > Hi all,
>
> > > I have just been caught by this feature: almost every task in 
> > > CCNet understands relative directories (from the current working
directory).
> > > For instance the sourceDir property of the buildPublisher task, or 
> > > the attachments property of the email task.
>
> > > But the following properties do not (I checked the source code to 
> > > be
> > > sure) :
> > > * folderExistsCondition in the conditional task.
> > > * localFolderName in the FTP task.
>
> > > I got mislead by that, and I suppose other people will/have been. 
> > > So I suggest (either) :
> > > * make these properties understand relative folders (preferred IMHO).
> > > * or make it clear in the documentation that paths must be 
> > > complete for these properties.
>
> > > What do you think?
>
> > > Mac

Reply via email to