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/project/core/tasks/Condi
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