Build Forge 8.0.0.1 - Windows 7 - RTC 4.0.5 - JazzJBE - error trying to set directory to BF work area - why?
I am running Build Forge 8.0.0.1 on windows 7. I have the BF console and windows bfagent running on windows 7. I have a 4.0.5 RTC server on a separate host. I created a BF job to just execute a "Fetch and Accept" using the ".source JazzJBE" command. I have an RTC build that kicks off the BF job and comes back with "completed successfully" status. However no source files are extract into the build workspace on the windows 7 host. I keep seeing the following error.
Unable to set working directory to 'C:\BF_SERVER_BUILDWRK\Test_Ant2\BUILD_1\Test_Ant2\BUILD_1' (2).
4
When I look - there is this directory -- C:\BF_SERVER_BUILDWRK\Test_Ant2\BUILD_1 --- but not a "duplicate one underneath. Any ideas why it is trying to do a "set working directory" to -- C:\BF_SERVER_BUILDWRK\Test_Ant2\BUILD_1\Test_Ant2\BUILD_1 -- instead of to -- C:\BF_SERVER_BUILDWRK\Test_Ant2\BUILD_1
Here are excerpts from the build log
BF_PROJECTNAME=Test Ant2
BF_PROJECTNAME_PHYS=Test_Ant2
BF_ROOT=C:\BF_SERVER_BUILDWRK\Test_Ant2\BUILD_1
BF_SERVER=Toshiba BF Server
BF_SERVER_ROOT=C:\BF_SERVER_BUILDWRK
BF_SID=1
BF_SSID=107f5aea0c671000d5f53dbbaa7afa3f
BF_SPID=107cd3520c671000d5f23dbbaa7afa3f
BF_STEPNAME=Accept and Fetch
BF_STEP_ROOT=C:\BF_SERVER_BUILDWRK\Test_Ant2\BUILD_1
BF_STEP_TYPE=REGULAR
BF_SUID=1082f8de0c671000c6b63dbb2362e738
BF_TAG=BUILD_1
BF_TAG_PHYS=BUILD_1
BF_THRESHOLD_COUNT=0
<?xml version="1.0"?>
<!-- (c) Copyright by IBM Corp. and other(s) [2012], 2013 All Rights Reserved. -->
<!DOCTYPE PROJECT_INTERFACE SYSTEM "interface.dtd">
<PROJECT_INTERFACE IFTYPE="Source" INSTANCE="7.02">
<!-- Adapter for running JBE to accept/fetch from Jazz Source Control using RTC 3.0 and beyond. -->
<template>
<env name="Current_Date" value=".date %d-%m-%y.%H:%M:%S" />
<env name="Last_Run" value="01-01-05.00:00:00" />
<env name="BFServer" value="$BF_SERVER"/>
<env name="Build_Engine_Path" value="default"/>
<env name="Repository_Address" value="https://localhost:9443/jazz" />
<env name="Build_User" value="build" />
<env name="Build_Password" value="build" />
<env name="buildResultUuid" value="" />
<env name="engineUUID" value="default"/>
<env name="Fetch_Dir" value="${BF_PROJECTNAME_PHYS}/${BF_TAG}"/>
</template>
<interface name="AntTask">
<run command="runJBE" params="" server="$BFServer" dir="/$BF_PROJECTNAME_PHYS/$BF_TAG" timeout="360"/>
<ontempenv name="Delete" state="hastext">
<step result="FAIL" />
<setenv name="_CI_BUILD_DELETE" value="1"/>
</ontempenv>
<ontempenv name="Failure" state="hastext">
<step result="FAIL" />
</ontempenv>
<onstep result="pass">
<setenv group="[ADAPTOR]" name="Last_Run" value="$Current_Date" />
</onstep>
</interface>
</onstep>
</interface>
<command name="runJBE">
<execute>$Build_Engine_Path/jbe -userId $Build_User -pass $Build_Password -repository $Repository_Address -buildResultUUID $buildResultUuid -engineUUID $engineUUID -participants com.ibm.team.build.jazzscm -noComplete -verbose</execute>
<resultsblock>
<match pattern="RC\=[0]">
<setenv name="Changes" value="TRUE" type="temp append\n" />
</match>
<match pattern="RC\=[1]">
<setenv name="Failure" value="TRUE" type="temp append\n" />
</match>
<match pattern="RC\=[2]">
<setenv name="Delete" value="TRUE" type="temp append\n" />
</match>
</resultsblock>
</command>
</PROJECT_INTERFACE>
set user account to BF_AGENT
BF_AGENT_VERSION=8.0.0.1-0-0019
BF_AGENT_PLATFORM=Windows 7
Locale set to 'English_United States.1252'
Unable to set working directory to 'C:\BF_SERVER_BUILDWRK\Test_Ant2\BUILD_1\Test_Ant2\BUILD_1' (2).
4
CRRBF0878I: Env Group '[ADAPTOR]' variable 'Last_Run' set to [11-02-14.08:29:44].
Finished Block Processing.
CRRBF1576I: Accept and Fetch completed (0)
Unable to set working directory to 'C:\BF_SERVER_BUILDWRK\Test_Ant2\BUILD_1\Test_Ant2\BUILD_1' (2).
4
When I look - there is this directory -- C:\BF_SERVER_BUILDWRK\Test_Ant2\BUILD_1 --- but not a "duplicate one underneath. Any ideas why it is trying to do a "set working directory" to -- C:\BF_SERVER_BUILDWRK\Test_Ant2\BUILD_1\Test_Ant2\BUILD_1 -- instead of to -- C:\BF_SERVER_BUILDWRK\Test_Ant2\BUILD_1
Here are excerpts from the build log
BF_PROJECTNAME=Test Ant2
BF_PROJECTNAME_PHYS=Test_Ant2
BF_ROOT=C:\BF_SERVER_BUILDWRK\Test_Ant2\BUILD_1
BF_SERVER=Toshiba BF Server
BF_SERVER_ROOT=C:\BF_SERVER_BUILDWRK
BF_SID=1
BF_SSID=107f5aea0c671000d5f53dbbaa7afa3f
BF_SPID=107cd3520c671000d5f23dbbaa7afa3f
BF_STEPNAME=Accept and Fetch
BF_STEP_ROOT=C:\BF_SERVER_BUILDWRK\Test_Ant2\BUILD_1
BF_STEP_TYPE=REGULAR
BF_SUID=1082f8de0c671000c6b63dbb2362e738
BF_TAG=BUILD_1
BF_TAG_PHYS=BUILD_1
BF_THRESHOLD_COUNT=0
<?xml version="1.0"?>
<!-- (c) Copyright by IBM Corp. and other(s) [2012], 2013 All Rights Reserved. -->
<!DOCTYPE PROJECT_INTERFACE SYSTEM "interface.dtd">
<PROJECT_INTERFACE IFTYPE="Source" INSTANCE="7.02">
<!-- Adapter for running JBE to accept/fetch from Jazz Source Control using RTC 3.0 and beyond. -->
<template>
<env name="Current_Date" value=".date %d-%m-%y.%H:%M:%S" />
<env name="Last_Run" value="01-01-05.00:00:00" />
<env name="BFServer" value="$BF_SERVER"/>
<env name="Build_Engine_Path" value="default"/>
<env name="Repository_Address" value="https://localhost:9443/jazz" />
<env name="Build_User" value="build" />
<env name="Build_Password" value="build" />
<env name="buildResultUuid" value="" />
<env name="engineUUID" value="default"/>
<env name="Fetch_Dir" value="${BF_PROJECTNAME_PHYS}/${BF_TAG}"/>
</template>
<interface name="AntTask">
<run command="runJBE" params="" server="$BFServer" dir="/$BF_PROJECTNAME_PHYS/$BF_TAG" timeout="360"/>
<ontempenv name="Delete" state="hastext">
<step result="FAIL" />
<setenv name="_CI_BUILD_DELETE" value="1"/>
</ontempenv>
<ontempenv name="Failure" state="hastext">
<step result="FAIL" />
</ontempenv>
<onstep result="pass">
<setenv group="[ADAPTOR]" name="Last_Run" value="$Current_Date" />
</onstep>
</interface>
</onstep>
</interface>
<command name="runJBE">
<execute>$Build_Engine_Path/jbe -userId $Build_User -pass $Build_Password -repository $Repository_Address -buildResultUUID $buildResultUuid -engineUUID $engineUUID -participants com.ibm.team.build.jazzscm -noComplete -verbose</execute>
<resultsblock>
<match pattern="RC\=[0]">
<setenv name="Changes" value="TRUE" type="temp append\n" />
</match>
<match pattern="RC\=[1]">
<setenv name="Failure" value="TRUE" type="temp append\n" />
</match>
<match pattern="RC\=[2]">
<setenv name="Delete" value="TRUE" type="temp append\n" />
</match>
</resultsblock>
</command>
</PROJECT_INTERFACE>
set user account to BF_AGENT
BF_AGENT_VERSION=8.0.0.1-0-0019
BF_AGENT_PLATFORM=Windows 7
Locale set to 'English_United States.1252'
Unable to set working directory to 'C:\BF_SERVER_BUILDWRK\Test_Ant2\BUILD_1\Test_Ant2\BUILD_1' (2).
4
CRRBF0878I: Env Group '[ADAPTOR]' variable 'Last_Run' set to [11-02-14.08:29:44].
Finished Block Processing.
CRRBF1576I: Accept and Fetch completed (0)
Accepted answer
The problem is in how you execute your adaptor:
<run command="runJBE" params="" server="$BFServer" dir="/$BF_PROJECTNAME_PHYS/$BF_TAG"
The dir attribute should be "/" as it already assumes you are running in the relative build path, which by default for BF is already <Agent Root>/$BF_PROJECTNAME_PHYS/$BF_TAG
You would need to create any directory more than the "/" to avoid the "cannot set working directory" error.
~Spencer
One other answer
Hi, I have the same problem, but I did not understand how to solve it. I've tried a few things, as to add a "Fetch_Dir" property to BF, changing the path in BF step, adding a "dir" parameter in the BF step that calls .source JazzJBE, but none of them worked. Could you please help me?
Best regards.
Cesar