Hi,
I discovered that there is a problem when you place a ForceBuild task inside 
a Conditional task. The following does not work:
<conditional>
  <conditions>
 <compareCondition>
   <value1>a</value1>
   <value2>a</value2>
   <evaluation>equal</evaluation>
   <ignoreCase>true</ignoreCase>
 </compareCondition>
  </conditions>
  <tasks>
 <forcebuild>
   <!--<integrationStatus>Unknown</integrationStatus>-->
   <project>SecondProject_$(majorVersion).$(minorVersion)</project>
   <enforcerName>Forcer</enforcerName>
 </forcebuild>
  </tasks>
</conditional>
I could not understand why it would not work, because when I remove the 
Conditional statements it works. When I debugged the sourcecode I discovered 
why: 
var taskResult = result.Clone();
this.RunTask(task, taskResult);
these codelines (used in e.g. ConditionalTask, SequentialTask, ParallelTask) 
does not behave as intended, since it does perform a real clone of the 
IntegrationResult class, e.g. the value of the Status property is not 
duplicated, instead it becomes 'Unknown' in the clone.
This affects the ForceBuildPublisher class since it checks the value of this 
property:
if (IntegrationStatus != result.Status) return false;
  
A workaround to this can be achieved by uncommenting the IntegrationResult 
nodes in the XML above.

Reply via email to