PageRenderTime 59ms CodeModel.GetById 22ms RepoModel.GetById 1ms app.codeStats 0ms

/BuildProcessTemplates/DefaultTemplate.xaml

#
XAML | 602 lines | 602 code | 0 blank | 0 comment | 0 complexity | 8edd2f8ca73bf4f820af4196e9ebc21d MD5 | raw file
Possible License(s): BSD-3-Clause
  1. <Activity mc:Ignorable="sap" x:Class="TfsBuild.Process" this:Process.BuildSettings="[New Microsoft.TeamFoundation.Build.Workflow.Activities.BuildSettings()]" this:Process.TestSpecs="[New Microsoft.TeamFoundation.Build.Workflow.Activities.TestSpecList(New Microsoft.TeamFoundation.Build.Workflow.Activities.TestAssemblySpec(&quot;**\*test*.dll&quot;))]" this:Process.BuildNumberFormat="[&quot;$(BuildDefinitionName)_$(Date:yyyyMMdd)$(Rev:.r)&quot;]" this:Process.CleanWorkspace="[Microsoft.TeamFoundation.Build.Workflow.Activities.CleanWorkspaceOption.All]" this:Process.RunCodeAnalysis="[Microsoft.TeamFoundation.Build.Workflow.Activities.CodeAnalysisOption.AsConfigured]" this:Process.SourceAndSymbolServerSettings="[New Microsoft.TeamFoundation.Build.Workflow.Activities.SourceAndSymbolServerSettings(True, Nothing)]" this:Process.AgentSettings="[New Microsoft.TeamFoundation.Build.Workflow.Activities.AgentSettings() With {.MaxWaitTime = New System.TimeSpan(4, 0, 0), .MaxExecutionTime = New System.TimeSpan(0, 0, 0), .TagComparison = Microsoft.TeamFoundation.Build.Workflow.Activities.TagComparison.MatchExactly }]" this:Process.AssociateChangesetsAndWorkItems="[True]" this:Process.CreateWorkItem="[True]" this:Process.DropBuild="[True]" this:Process.MSBuildPlatform="[Microsoft.TeamFoundation.Build.Workflow.Activities.ToolPlatform.Auto]" this:Process.PerformTestImpactAnalysis="[True]" this:Process.CreateLabel="[True]" this:Process.DisableTests="[False]" this:Process.Verbosity="[Microsoft.TeamFoundation.Build.Workflow.BuildVerbosity.Normal]" this:Process.SupportedReasons="All" xmlns="http://schemas.microsoft.com/netfx/2009/xaml/activities" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mt="clr-namespace:Microsoft.TeamFoundation;assembly=Microsoft.TeamFoundation.Common" xmlns:mtbc="clr-namespace:Microsoft.TeamFoundation.Build.Client;assembly=Microsoft.TeamFoundation.Build.Client" xmlns:mtbw="clr-namespace:Microsoft.TeamFoundation.Build.Workflow;assembly=Microsoft.TeamFoundation.Build.Workflow" xmlns:mtbwa="clr-namespace:Microsoft.TeamFoundation.Build.Workflow.Activities;assembly=Microsoft.TeamFoundation.Build.Workflow" xmlns:mtbwt="clr-namespace:Microsoft.TeamFoundation.Build.Workflow.Tracking;assembly=Microsoft.TeamFoundation.Build.Workflow" xmlns:mttbb="clr-namespace:Microsoft.TeamFoundation.TestImpact.BuildIntegration.BuildActivities;assembly=Microsoft.TeamFoundation.TestImpact.BuildIntegration" xmlns:mtvc="clr-namespace:Microsoft.TeamFoundation.VersionControl.Client;assembly=Microsoft.TeamFoundation.VersionControl.Client" xmlns:mtvc1="clr-namespace:Microsoft.TeamFoundation.VersionControl.Common;assembly=Microsoft.TeamFoundation.VersionControl.Common" xmlns:mva="clr-namespace:Microsoft.VisualBasic.Activities;assembly=System.Activities" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:sa="clr-namespace:System.Activities;assembly=System.Activities" xmlns:sad="clr-namespace:System.Activities.Debugger;assembly=System.Activities" xmlns:sap="http://schemas.microsoft.com/netfx/2009/xaml/activities/presentation" xmlns:scg="clr-namespace:System.Collections.Generic;assembly=mscorlib" xmlns:si="clr-namespace:System.IO;assembly=mscorlib" xmlns:sl="clr-namespace:System.Linq;assembly=System.Core" xmlns:this="clr-namespace:TfsBuild" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  2. <x:Members>
  3. <x:Property Name="BuildSettings" Type="InArgument(mtbwa:BuildSettings)" />
  4. <x:Property Name="TestSpecs" Type="InArgument(mtbwa:TestSpecList)" />
  5. <x:Property Name="BuildNumberFormat" Type="InArgument(x:String)" />
  6. <x:Property Name="CleanWorkspace" Type="InArgument(mtbwa:CleanWorkspaceOption)" />
  7. <x:Property Name="RunCodeAnalysis" Type="InArgument(mtbwa:CodeAnalysisOption)" />
  8. <x:Property Name="SourceAndSymbolServerSettings" Type="InArgument(mtbwa:SourceAndSymbolServerSettings)" />
  9. <x:Property Name="AgentSettings" Type="InArgument(mtbwa:AgentSettings)" />
  10. <x:Property Name="AssociateChangesetsAndWorkItems" Type="InArgument(x:Boolean)" />
  11. <x:Property Name="CreateWorkItem" Type="InArgument(x:Boolean)" />
  12. <x:Property Name="DropBuild" Type="InArgument(x:Boolean)" />
  13. <x:Property Name="MSBuildArguments" Type="InArgument(x:String)" />
  14. <x:Property Name="MSBuildPlatform" Type="InArgument(mtbwa:ToolPlatform)" />
  15. <x:Property Name="PerformTestImpactAnalysis" Type="InArgument(x:Boolean)" />
  16. <x:Property Name="CreateLabel" Type="InArgument(x:Boolean)" />
  17. <x:Property Name="DisableTests" Type="InArgument(x:Boolean)" />
  18. <x:Property Name="GetVersion" Type="InArgument(x:String)" />
  19. <x:Property Name="PrivateDropLocation" Type="InArgument(x:String)" />
  20. <x:Property Name="Verbosity" Type="InArgument(mtbw:BuildVerbosity)" />
  21. <x:Property Name="Metadata" Type="mtbw:ProcessParameterMetadataCollection" />
  22. <x:Property Name="SupportedReasons" Type="mtbc:BuildReason" />
  23. </x:Members>
  24. <this:Process.MSBuildArguments>
  25. <InArgument x:TypeArguments="x:String" />
  26. </this:Process.MSBuildArguments>
  27. <this:Process.GetVersion>
  28. <InArgument x:TypeArguments="x:String" />
  29. </this:Process.GetVersion>
  30. <this:Process.Metadata>
  31. <mtbw:ProcessParameterMetadataCollection />
  32. </this:Process.Metadata>
  33. <mva:VisualBasic.Settings>Assembly references and imported namespaces serialized as XML namespaces</mva:VisualBasic.Settings>
  34. <sap:WorkflowViewStateService.ViewState>
  35. <scg:Dictionary x:TypeArguments="x:String, x:Object">
  36. <x:Boolean x:Key="ShouldExpandAll">True</x:Boolean>
  37. </scg:Dictionary>
  38. </sap:WorkflowViewStateService.ViewState>
  39. <Sequence sad:XamlDebuggerXmlReader.FileName="C:\vstf\lab26vsts\src\vset\SCM\BigBuild\templates\defaulttemplate.xaml" sap:VirtualizedContainerService.HintSize="1972,13038" mtbwt:BuildTrackingParticipant.Importance="None">
  40. <Sequence.Variables>
  41. <Variable x:TypeArguments="mtbc:IBuildDetail" Name="BuildDetail" />
  42. </Sequence.Variables>
  43. <sap:WorkflowViewStateService.ViewState>
  44. <scg:Dictionary x:TypeArguments="x:String, x:Object">
  45. <x:Boolean x:Key="IsExpanded">True</x:Boolean>
  46. </scg:Dictionary>
  47. </sap:WorkflowViewStateService.ViewState>
  48. <mtbwa:GetBuildDetail DisplayName="Get the Build" sap:VirtualizedContainerService.HintSize="1950,22" mtbwt:BuildTrackingParticipant.Importance="Low" Result="[BuildDetail]" />
  49. <Sequence DisplayName="Update Drop Location" sap:VirtualizedContainerService.HintSize="1950,1310" mtbwt:BuildTrackingParticipant.Importance="Low">
  50. <sap:WorkflowViewStateService.ViewState>
  51. <scg:Dictionary x:TypeArguments="x:String, x:Object">
  52. <x:Boolean x:Key="IsExpanded">True</x:Boolean>
  53. </scg:Dictionary>
  54. </sap:WorkflowViewStateService.ViewState>
  55. <mtbwa:InvokeForReason DisplayName="Update Build Number for Triggered Builds" sap:VirtualizedContainerService.HintSize="611,146" Reason="Triggered">
  56. <mtbwa:UpdateBuildNumber BuildNumberFormat="[BuildNumberFormat]" DisplayName="Update Build Number" sap:VirtualizedContainerService.HintSize="200,22" />
  57. </mtbwa:InvokeForReason>
  58. <If Condition="[DropBuild AndAlso (BuildDetail.Reason And Microsoft.TeamFoundation.Build.Client.BuildReason.Triggered) = BuildDetail.Reason]" DisplayName="If DropBuild And Build Reason is Triggered" sap:VirtualizedContainerService.HintSize="611,550" mtbwt:BuildTrackingParticipant.Importance="Low">
  59. <If.Then>
  60. <Sequence sap:VirtualizedContainerService.HintSize="486,449" mtbwt:BuildTrackingParticipant.Importance="None">
  61. <sap:WorkflowViewStateService.ViewState>
  62. <scg:Dictionary x:TypeArguments="x:String, x:Object">
  63. <x:Boolean x:Key="IsExpanded">True</x:Boolean>
  64. </scg:Dictionary>
  65. </sap:WorkflowViewStateService.ViewState>
  66. <If Condition="[String.IsNullOrEmpty(BuildDetail.DropLocationRoot)]" DisplayName="If DropLocationRoot is empty" sap:VirtualizedContainerService.HintSize="464,201" mtbwt:BuildTrackingParticipant.Importance="Low">
  67. <If.Then>
  68. <Throw DisplayName="Throw EmptyDropLocationRootException" Exception="[New Microsoft.TeamFoundation.Build.Workflow.Activities.EmptyDropLocationRootException(BuildDetail.BuildDefinition.Name)]" sap:VirtualizedContainerService.HintSize="269,100" mtbwt:BuildTrackingParticipant.Importance="Low" />
  69. </If.Then>
  70. </If>
  71. <mtbwa:SetBuildProperties DisplayName="Set Drop Location" DropLocation="[BuildDetail.DropLocationRoot + &quot;\&quot; + BuildDetail.BuildDefinition.Name + &quot;\&quot; + BuildDetail.BuildNumber]" sap:VirtualizedContainerService.HintSize="464,22" mtbwt:BuildTrackingParticipant.Importance="Low" PropertiesToSet="DropLocation" />
  72. <mtbwa:CreateDirectory Directory="[BuildDetail.DropLocation]" DisplayName="Create the Drop Location" sap:VirtualizedContainerService.HintSize="464,22" mtbwt:BuildTrackingParticipant.Importance="Normal" />
  73. </Sequence>
  74. </If.Then>
  75. </If>
  76. <If Condition="[DropBuild AndAlso BuildDetail.Reason = Microsoft.TeamFoundation.Build.Client.BuildReason.ValidateShelveset]" DisplayName="If DropBuild And Build Reason is ValidateShelveset" sap:VirtualizedContainerService.HintSize="611,410" mtbwt:BuildTrackingParticipant.Importance="Low">
  77. <If.Then>
  78. <If Condition="[Not String.IsNullOrEmpty(PrivateDropLocation)]" sap:VirtualizedContainerService.HintSize="464,309" mtbwt:BuildTrackingParticipant.Importance="None">
  79. <If.Then>
  80. <Sequence sap:VirtualizedContainerService.HintSize="231,208" mtbwt:BuildTrackingParticipant.Importance="None">
  81. <sap:WorkflowViewStateService.ViewState>
  82. <scg:Dictionary x:TypeArguments="x:String, x:Object">
  83. <x:Boolean x:Key="IsExpanded">True</x:Boolean>
  84. </scg:Dictionary>
  85. </sap:WorkflowViewStateService.ViewState>
  86. <mtbwa:SetBuildProperties DisplayName="Set Drop Location for Private Build" DropLocation="[PrivateDropLocation + &quot;\&quot; + BuildDetail.BuildDefinition.Name + &quot;\&quot; + BuildDetail.BuildNumber]" sap:VirtualizedContainerService.HintSize="200,22" mtbwt:BuildTrackingParticipant.Importance="Low" PropertiesToSet="DropLocation" />
  87. <mtbwa:CreateDirectory Directory="[BuildDetail.DropLocation]" DisplayName="Create the Drop Location" sap:VirtualizedContainerService.HintSize="200,22" mtbwt:BuildTrackingParticipant.Importance="Normal" />
  88. </Sequence>
  89. </If.Then>
  90. <If.Else>
  91. <mtbwa:WriteBuildWarning sap:VirtualizedContainerService.HintSize="208,208" Message="The build outputs for this private build will not be copied to the drop location because the PrivateDropLocation is not set." />
  92. </If.Else>
  93. </If>
  94. </If.Then>
  95. </If>
  96. </Sequence>
  97. <mtbwa:AgentScope DisplayName="Run On Agent" sap:VirtualizedContainerService.HintSize="1950,11316" MaxExecutionTime="[AgentSettings.MaxExecutionTime]" MaxWaitTime="[AgentSettings.MaxWaitTime]" ReservationSpec="[AgentSettings.GetAgentReservationSpec()]">
  98. <mtbwa:AgentScope.Variables>
  99. <Variable x:TypeArguments="mtbc:IBuildAgent" Name="BuildAgent" />
  100. <Variable x:TypeArguments="mtvc:Workspace" Name="Workspace" />
  101. <Variable x:TypeArguments="x:String" Name="BuildDirectory" />
  102. <Variable x:TypeArguments="x:String" Default="[BuildDetail.BuildNumber]" Name="LabelName" />
  103. <Variable x:TypeArguments="x:String" Name="WorkspaceName" />
  104. <Variable x:TypeArguments="x:String" Name="SourcesDirectory" />
  105. <Variable x:TypeArguments="x:String" Name="BinariesDirectory" />
  106. <Variable x:TypeArguments="x:String" Name="TestResultsDirectory" />
  107. </mtbwa:AgentScope.Variables>
  108. <Sequence DisplayName="Initialize Variables" sap:VirtualizedContainerService.HintSize="1928,1046" mtbwt:BuildTrackingParticipant.Importance="Low">
  109. <sap:WorkflowViewStateService.ViewState>
  110. <scg:Dictionary x:TypeArguments="x:String, x:Object">
  111. <x:Boolean x:Key="IsExpanded">True</x:Boolean>
  112. </scg:Dictionary>
  113. </sap:WorkflowViewStateService.ViewState>
  114. <mtbwa:GetBuildAgent DisplayName="Get the Agent" sap:VirtualizedContainerService.HintSize="464,22" mtbwt:BuildTrackingParticipant.Importance="Low" Result="[BuildAgent]" />
  115. <mtbwa:GetBuildDirectory DisplayName="Get the Build Directory" sap:VirtualizedContainerService.HintSize="464,22" mtbwt:BuildTrackingParticipant.Importance="Low" Result="[BuildDirectory]" />
  116. <Assign x:TypeArguments="x:String" DisplayName="Initialize Workspace Name" sap:VirtualizedContainerService.HintSize="464,22" mtbwt:BuildTrackingParticipant.Importance="Low" To="[WorkspaceName]" Value="[String.Format(&quot;{0}_{1}_{2}&quot;, BuildDetail.BuildDefinition.Id, Microsoft.TeamFoundation.LinkingUtilities.DecodeUri(BuildAgent.Uri.AbsoluteUri).ToolSpecificId, BuildAgent.ServiceHost.Name)]" />
  117. <Assign x:TypeArguments="x:String" DisplayName="Initialize Sources Directory" sap:VirtualizedContainerService.HintSize="464,22" mtbwt:BuildTrackingParticipant.Importance="Low" To="[SourcesDirectory]" Value="[String.Format(&quot;{0}\Sources&quot;, BuildDirectory)]" />
  118. <Assign x:TypeArguments="x:String" DisplayName="Initialize Binaries Directory" sap:VirtualizedContainerService.HintSize="464,22" mtbwt:BuildTrackingParticipant.Importance="Low" To="[BinariesDirectory]" Value="[String.Format(&quot;{0}\Binaries&quot;, BuildDirectory)]" />
  119. <Assign x:TypeArguments="x:String" DisplayName="Initialize TestResults Directory" sap:VirtualizedContainerService.HintSize="464,22" mtbwt:BuildTrackingParticipant.Importance="Low" To="[TestResultsDirectory]" Value="[String.Format(&quot;{0}\TestResults&quot;, BuildDirectory)]" />
  120. <If Condition="[Not BuildSettings.HasPlatformConfigurations]" DisplayName="If Not BuildSettings.HasPlatformConfigurations" sap:VirtualizedContainerService.HintSize="464,201" mtbwt:BuildTrackingParticipant.Importance="Low">
  121. <If.Then>
  122. <AddToCollection x:TypeArguments="mtbwa:PlatformConfiguration" DisplayName="Use Default Platform Configuration" Collection="[BuildSettings.PlatformConfigurations]" Item="[Microsoft.TeamFoundation.Build.Workflow.Activities.PlatformConfiguration.Default]" mtbwt:BuildTrackingParticipant.Importance="Low" />
  123. </If.Then>
  124. </If>
  125. <If Condition="[WorkspaceName.Length &gt; Microsoft.TeamFoundation.VersionControl.Common.RepositoryConstants.MaxWorkspaceNameSize]" DisplayName="If WorkspaceName &gt; MaxSize" sap:VirtualizedContainerService.HintSize="464,309" mtbwt:BuildTrackingParticipant.Importance="Low">
  126. <If.Then>
  127. <Sequence sap:VirtualizedContainerService.HintSize="281,208" mtbwt:BuildTrackingParticipant.Importance="None">
  128. <sap:WorkflowViewStateService.ViewState>
  129. <scg:Dictionary x:TypeArguments="x:String, x:Object">
  130. <x:Boolean x:Key="IsExpanded">True</x:Boolean>
  131. </scg:Dictionary>
  132. </sap:WorkflowViewStateService.ViewState>
  133. <mtbwa:WriteBuildWarning sap:VirtualizedContainerService.HintSize="200,22" Message="[String.Format(&quot;The workspace name '{0}' exceeds the maximum allowed limit of '{1}' characters. Truncating it to match the maximum limit.&quot;, WorkspaceName, Microsoft.TeamFoundation.VersionControl.Common.RepositoryConstants.MaxWorkspaceNameSize)]" />
  134. <Assign x:TypeArguments="x:String" DisplayName="Truncate WorkspaceName to MaxSize" sap:VirtualizedContainerService.HintSize="200,22" mtbwt:BuildTrackingParticipant.Importance="Low" To="[WorkspaceName]" Value="[WorkspaceName.Substring(0, Microsoft.TeamFoundation.VersionControl.Common.RepositoryConstants.MaxWorkspaceNameSize).TrimEnd()]" />
  135. </Sequence>
  136. </If.Then>
  137. </If>
  138. </Sequence>
  139. <Sequence DisplayName="Initialize Workspace" sap:VirtualizedContainerService.HintSize="1928,1819" mtbwt:BuildTrackingParticipant.Importance="Low">
  140. <sap:WorkflowViewStateService.ViewState>
  141. <scg:Dictionary x:TypeArguments="x:String, x:Object">
  142. <x:Boolean x:Key="IsExpanded">True</x:Boolean>
  143. </scg:Dictionary>
  144. </sap:WorkflowViewStateService.ViewState>
  145. <mtbwa:DeleteDirectory Directory="[TestResultsDirectory]" DisplayName="Delete Test Results Directory" sap:VirtualizedContainerService.HintSize="818,22" mtbwt:BuildTrackingParticipant.Importance="Normal" Recursive="[True]" />
  146. <If Condition="[Not CleanWorkspace = Microsoft.TeamFoundation.Build.Workflow.Activities.CleanWorkspaceOption.None]" DisplayName="If Not CleanWorkspace = CleanWorkspaceOption.None" sap:VirtualizedContainerService.HintSize="818,201" mtbwt:BuildTrackingParticipant.Importance="Low">
  147. <If.Then>
  148. <mtbwa:DeleteDirectory Directory="[BinariesDirectory]" DisplayName="Delete Binaries Directory" sap:VirtualizedContainerService.HintSize="269,100" mtbwt:BuildTrackingParticipant.Importance="Normal" />
  149. </If.Then>
  150. </If>
  151. <If Condition="[CleanWorkspace = Microsoft.TeamFoundation.Build.Workflow.Activities.CleanWorkspaceOption.All]" DisplayName="If CleanWorkspace = CleanWorkspaceOption.All" sap:VirtualizedContainerService.HintSize="818,309" mtbwt:BuildTrackingParticipant.Importance="Low">
  152. <If.Then>
  153. <Sequence DisplayName="Delete Workspace and Sources Directory" sap:VirtualizedContainerService.HintSize="281,208" mtbwt:BuildTrackingParticipant.Importance="Low">
  154. <sap:WorkflowViewStateService.ViewState>
  155. <scg:Dictionary x:TypeArguments="x:String, x:Object">
  156. <x:Boolean x:Key="IsExpanded">True</x:Boolean>
  157. </scg:Dictionary>
  158. </sap:WorkflowViewStateService.ViewState>
  159. <mtbwa:DeleteWorkspace DeleteLocalItems="[True]" DisplayName="Delete Workspace" sap:VirtualizedContainerService.HintSize="200,22" mtbwt:BuildTrackingParticipant.Importance="Normal" Name="[WorkspaceName]" />
  160. <mtbwa:DeleteDirectory Directory="[SourcesDirectory]" DisplayName="Delete Sources Directory" sap:VirtualizedContainerService.HintSize="200,22" mtbwt:BuildTrackingParticipant.Importance="Normal" />
  161. </Sequence>
  162. </If.Then>
  163. </If>
  164. <mtbwa:CreateWorkspace BuildDirectory="[BuildDirectory]" Comment="[&quot;Workspace Created by Team Build&quot;]" DisplayName="Create Workspace" sap:VirtualizedContainerService.HintSize="818,22" Name="[WorkspaceName]" Result="[Workspace]" SourcesDirectory="[SourcesDirectory]" />
  165. <If Condition="[CleanWorkspace = Microsoft.TeamFoundation.Build.Workflow.Activities.CleanWorkspaceOption.Outputs]" DisplayName="If CleanWorkspace = CleanWorkspaceOption.Outputs" sap:VirtualizedContainerService.HintSize="818,919" mtbwt:BuildTrackingParticipant.Importance="Low">
  166. <If.Then>
  167. <ForEach x:TypeArguments="mtbwa:PlatformConfiguration" DisplayName="For Each Configuration in BuildSettings.PlatformConfigurations" sap:VirtualizedContainerService.HintSize="693,818" mtbwt:BuildTrackingParticipant.Importance="Low" Values="[BuildSettings.PlatformConfigurations]">
  168. <ActivityAction x:TypeArguments="mtbwa:PlatformConfiguration">
  169. <ActivityAction.Argument>
  170. <DelegateInArgument x:TypeArguments="mtbwa:PlatformConfiguration" Name="platformConfiguration" />
  171. </ActivityAction.Argument>
  172. <Sequence DisplayName="Clean Configuration" sap:VirtualizedContainerService.HintSize="663,715">
  173. <sap:WorkflowViewStateService.ViewState>
  174. <scg:Dictionary x:TypeArguments="x:String, x:Object">
  175. <x:Boolean x:Key="IsExpanded">True</x:Boolean>
  176. </scg:Dictionary>
  177. </sap:WorkflowViewStateService.ViewState>
  178. <If Condition="[BuildSettings.HasProjectsToBuild]" DisplayName="If BuildSettings.HasProjectsToBuild" sap:VirtualizedContainerService.HintSize="641,591" mtbwt:BuildTrackingParticipant.Importance="Low">
  179. <If.Then>
  180. <ForEach x:TypeArguments="x:String" DisplayName="For Each Project in BuildSettings.ProjectsToBuild" sap:VirtualizedContainerService.HintSize="516,490" mtbwt:BuildTrackingParticipant.Importance="Low" Values="[BuildSettings.ProjectsToBuild]">
  181. <ActivityAction x:TypeArguments="x:String">
  182. <ActivityAction.Argument>
  183. <DelegateInArgument x:TypeArguments="x:String" Name="serverBuildProjectItem" />
  184. </ActivityAction.Argument>
  185. <Sequence DisplayName="Clean Project" sap:VirtualizedContainerService.HintSize="486,387" mtbwt:BuildTrackingParticipant.Importance="Normal">
  186. <Sequence.Variables>
  187. <Variable x:TypeArguments="x:String" Name="localBuildProjectItem" />
  188. </Sequence.Variables>
  189. <sap:WorkflowViewStateService.ViewState>
  190. <scg:Dictionary x:TypeArguments="x:String, x:Object">
  191. <x:Boolean x:Key="IsExpanded">True</x:Boolean>
  192. </scg:Dictionary>
  193. </sap:WorkflowViewStateService.ViewState>
  194. <mtbwa:ConvertWorkspaceItem DisplayName="Convert Server Paths to Local Paths" sap:VirtualizedContainerService.HintSize="464,22" mtbwt:BuildTrackingParticipant.Importance="Low" Input="[serverBuildProjectItem]" Result="[localBuildProjectItem]" Workspace="[Workspace]" />
  195. <If Condition="[System.IO.File.Exists(localBuildProjectItem)]" DisplayName="If File.Exists(Project)" sap:VirtualizedContainerService.HintSize="464,201" mtbwt:BuildTrackingParticipant.Importance="Low">
  196. <If.Then>
  197. <mtbwa:MSBuild CommandLineArguments="[String.Format(&quot;/p:SkipInvalidConfigurations=true {0}&quot;, MSBuildArguments)]" Configuration="[platformConfiguration.Configuration]" DisplayName="Run MSBuild for Project" GenerateVSPropsFile="[True]" sap:VirtualizedContainerService.HintSize="269,100" OutDir="[BinariesDirectory]" Platform="[platformConfiguration.Platform]" Project="[localBuildProjectItem]" Targets="[New String() { &quot;Clean&quot; }]" TargetsNotLogged="[New String() {&quot;GetNativeManifest&quot;, &quot;GetCopyToOutputDirectoryItems&quot;, &quot;GetTargetPath&quot;}]" ToolPlatform="[MSBuildPlatform]" Verbosity="[Verbosity]" />
  198. </If.Then>
  199. </If>
  200. </Sequence>
  201. </ActivityAction>
  202. </ForEach>
  203. </If.Then>
  204. </If>
  205. </Sequence>
  206. </ActivityAction>
  207. </ForEach>
  208. </If.Then>
  209. </If>
  210. <mtbwa:SyncWorkspace DisplayName="Get Workspace" sap:VirtualizedContainerService.HintSize="818,22" VersionOverride="[GetVersion]" Workspace="[Workspace]" />
  211. </Sequence>
  212. <If Condition="[CreateLabel]" DisplayName="If CreateLabel" sap:VirtualizedContainerService.HintSize="1928,309" mtbwt:BuildTrackingParticipant.Importance="Low">
  213. <If.Then>
  214. <mtbwa:InvokeForReason DisplayName="Create and Set Label for non-Shelveset Builds" sap:VirtualizedContainerService.HintSize="281,208" Reason="Manual, IndividualCI, BatchedCI, Schedule, ScheduleForced, UserCreated">
  215. <mtbwa:LabelWorkspace Comment="[&quot;Label Created by Team Build&quot;]" DisplayName="Create Label" sap:VirtualizedContainerService.HintSize="200,22" Name="[LabelName]" Scope="[String.Format(&quot;$/{0}&quot;, BuildDetail.BuildDefinition.TeamProject)]" Workspace="[Workspace]" />
  216. <mtbwa:SetBuildProperties DisplayName="Set Label on BuildDetail" sap:VirtualizedContainerService.HintSize="200,22" mtbwt:BuildTrackingParticipant.Importance="Low" LabelName="[String.Format(&quot;{0}@$/{1}&quot;, LabelName, BuildDetail.BuildDefinition.TeamProject)]" PropertiesToSet="LabelName" />
  217. </mtbwa:InvokeForReason>
  218. </If.Then>
  219. </If>
  220. <TryCatch DisplayName="Try Compile, Test, and Associate Changesets and Work Items" sap:VirtualizedContainerService.HintSize="1928,7898" mtbwt:BuildTrackingParticipant.Importance="Low">
  221. <TryCatch.Finally>
  222. <Sequence DisplayName="Revert Workspace and Copy Files to Drop Location" sap:VirtualizedContainerService.HintSize="1910,511" mtbwt:BuildTrackingParticipant.Importance="Low">
  223. <sap:WorkflowViewStateService.ViewState>
  224. <scg:Dictionary x:TypeArguments="x:String, x:Object">
  225. <x:Boolean x:Key="IsExpanded">True</x:Boolean>
  226. </scg:Dictionary>
  227. </sap:WorkflowViewStateService.ViewState>
  228. <mtbwa:InvokeForReason DisplayName="Revert Workspace for Shelveset Builds" sap:VirtualizedContainerService.HintSize="464,146" Reason="ValidateShelveset, CheckInShelveset">
  229. <mtbwa:RevertWorkspace DisplayName="Revert Workspace" sap:VirtualizedContainerService.HintSize="200,22" Workspace="[Workspace]" />
  230. </mtbwa:InvokeForReason>
  231. <If Condition="[DropBuild AndAlso Not String.IsNullOrEmpty(BuildDetail.DropLocation)]" DisplayName="If DropBuild And DropLocation is Set" sap:VirtualizedContainerService.HintSize="464,201" mtbwt:BuildTrackingParticipant.Importance="Low">
  232. <If.Then>
  233. <mtbwa:CopyDirectory Destination="[BuildDetail.DropLocation]" DisplayName="Copy Files to Drop Location" sap:VirtualizedContainerService.HintSize="269,100" Source="[BinariesDirectory]" />
  234. </If.Then>
  235. </If>
  236. </Sequence>
  237. </TryCatch.Finally>
  238. <TryCatch.Try>
  239. <Sequence sap:VirtualizedContainerService.HintSize="1910,7226" mtbwt:BuildTrackingParticipant.Importance="None">
  240. <Sequence.Variables>
  241. <Variable x:TypeArguments="s:Exception" Name="compilationException" />
  242. <Variable x:TypeArguments="scg:IList(mtvc:Changeset)" Name="associatedChangesets" />
  243. <Variable x:TypeArguments="x:Boolean" Name="treatTestFailureAsBuildFailure" />
  244. </Sequence.Variables>
  245. <sap:WorkflowViewStateService.ViewState>
  246. <scg:Dictionary x:TypeArguments="x:String, x:Object">
  247. <x:Boolean x:Key="IsExpanded">True</x:Boolean>
  248. </scg:Dictionary>
  249. </sap:WorkflowViewStateService.ViewState>
  250. <Parallel DisplayName="Compile, Test, and Associate Changesets and Work Items" sap:VirtualizedContainerService.HintSize="1888,5264">
  251. <TryCatch DisplayName="Try Compile and Test" sap:VirtualizedContainerService.HintSize="1270,5218" mtbwt:BuildTrackingParticipant.Importance="Low">
  252. <TryCatch.Try>
  253. <Sequence DisplayName="Compile and Test" sap:VirtualizedContainerService.HintSize="1252,4850">
  254. <sap:WorkflowViewStateService.ViewState>
  255. <scg:Dictionary x:TypeArguments="x:String, x:Object">
  256. <x:Boolean x:Key="IsExpanded">True</x:Boolean>
  257. </scg:Dictionary>
  258. </sap:WorkflowViewStateService.ViewState>
  259. <ForEach x:TypeArguments="mtbwa:PlatformConfiguration" DisplayName="For Each Configuration in BuildSettings.PlatformConfigurations" sap:VirtualizedContainerService.HintSize="1230,4003" mtbwt:BuildTrackingParticipant.Importance="Low" Values="[BuildSettings.PlatformConfigurations]">
  260. <ActivityAction x:TypeArguments="mtbwa:PlatformConfiguration">
  261. <ActivityAction.Argument>
  262. <DelegateInArgument x:TypeArguments="mtbwa:PlatformConfiguration" Name="platformConfiguration" />
  263. </ActivityAction.Argument>
  264. <Sequence DisplayName="Compile and Test for Configuration" sap:VirtualizedContainerService.HintSize="1200,3900" mtbwt:BuildTrackingParticipant.Importance="Low">
  265. <Sequence.Variables>
  266. <Variable x:TypeArguments="x:String" Name="outputDirectory" />
  267. <Variable x:TypeArguments="x:String" Name="logFileDropLocation" />
  268. </Sequence.Variables>
  269. <sap:WorkflowViewStateService.ViewState>
  270. <scg:Dictionary x:TypeArguments="x:String, x:Object">
  271. <x:Boolean x:Key="IsExpanded">True</x:Boolean>
  272. </scg:Dictionary>
  273. </sap:WorkflowViewStateService.ViewState>
  274. <Sequence DisplayName="Initialize Variables" sap:VirtualizedContainerService.HintSize="1178,387" mtbwt:BuildTrackingParticipant.Importance="Low">
  275. <sap:WorkflowViewStateService.ViewState>
  276. <scg:Dictionary x:TypeArguments="x:String, x:Object">
  277. <x:Boolean x:Key="IsExpanded">True</x:Boolean>
  278. </scg:Dictionary>
  279. </sap:WorkflowViewStateService.ViewState>
  280. <Assign x:TypeArguments="x:String" DisplayName="Initialize OutputDirectory" sap:VirtualizedContainerService.HintSize="464,22" mtbwt:BuildTrackingParticipant.Importance="Low" To="[outputDirectory]" Value="[If (platformConfiguration.IsEmpty Or BuildSettings.PlatformConfigurations.Count = 1, BinariesDirectory, If (platformConfiguration.IsPlatformEmptyOrAnyCpu, BinariesDirectory + &quot;\&quot; + platformConfiguration.Configuration, BinariesDirectory + &quot;\&quot; + platformConfiguration.Platform + &quot;\&quot; + platformConfiguration.Configuration))]" />
  281. <If Condition="[Not String.IsNullOrEmpty(BuildDetail.DropLocation)]" DisplayName="If DropLocation is Set" sap:VirtualizedContainerService.HintSize="464,201" mtbwt:BuildTrackingParticipant.Importance="Low">
  282. <If.Then>
  283. <Assign x:TypeArguments="x:String" DisplayName="Initialize LogFile Drop Location" sap:VirtualizedContainerService.HintSize="269,100" mtbwt:BuildTrackingParticipant.Importance="Low" To="[logFileDropLocation]" Value="[If (platformConfiguration.IsEmpty Or BuildSettings.PlatformConfigurations.Count = 1, BuildDetail.DropLocation + &quot;\logs&quot;, If (platformConfiguration.IsPlatformEmptyOrAnyCpu, BuildDetail.DropLocation + &quot;\logs\&quot; + platformConfiguration.Configuration, BuildDetail.DropLocation + &quot;\logs\&quot; + platformConfiguration.Platform + &quot;\&quot; + platformConfiguration.Configuration))]" />
  284. </If.Then>
  285. </If>
  286. </Sequence>
  287. <If Condition="[BuildSettings.HasProjectsToBuild]" DisplayName="If BuildSettings.HasProjectsToBuild" sap:VirtualizedContainerService.HintSize="1178,1379" mtbwt:BuildTrackingParticipant.Importance="Low">
  288. <If.Then>
  289. <ForEach x:TypeArguments="x:String" DisplayName="For Each Project in BuildSettings.ProjectsToBuild" sap:VirtualizedContainerService.HintSize="536,1278" mtbwt:BuildTrackingParticipant.Importance="Low" Values="[BuildSettings.ProjectsToBuild]">
  290. <ActivityAction x:TypeArguments="x:String">
  291. <ActivityAction.Argument>
  292. <DelegateInArgument x:TypeArguments="x:String" Name="serverBuildProjectItem" />
  293. </ActivityAction.Argument>
  294. <TryCatch DisplayName="Try to Compile the Project" sap:VirtualizedContainerService.HintSize="506,1175" mtbwt:BuildTrackingParticipant.Importance="Low">
  295. <TryCatch.Try>
  296. <Sequence DisplayName="Compile the Project" sap:VirtualizedContainerService.HintSize="488,387" mtbwt:BuildTrackingParticipant.Importance="Low">
  297. <Sequence.Variables>
  298. <Variable x:TypeArguments="x:String" Name="localProject" />
  299. </Sequence.Variables>
  300. <sap:WorkflowViewStateService.ViewState>
  301. <scg:Dictionary x:TypeArguments="x:String, x:Object">
  302. <x:Boolean x:Key="IsExpanded">True</x:Boolean>
  303. </scg:Dictionary>
  304. </sap:WorkflowViewStateService.ViewState>
  305. <mtbwa:ConvertWorkspaceItem DisplayName="Convert Server Path to Local Path" sap:VirtualizedContainerService.HintSize="464,22" mtbwt:BuildTrackingParticipant.Importance="Low" Input="[serverBuildProjectItem]" Result="[localProject]" Workspace="[Workspace]" />
  306. <If Condition="[Not System.IO.File.Exists(localProject)]" DisplayName="If Local File Doesn't Exist" sap:VirtualizedContainerService.HintSize="464,201">
  307. <If.Then>
  308. <Throw DisplayName="Throw FileNotFoundException" Exception="[New System.IO.FileNotFoundException(String.Format(&quot;The file {0} could not be found.&quot;, localProject), localProject)]" sap:VirtualizedContainerService.HintSize="219,100" />
  309. </If.Then>
  310. <If.Else>
  311. <mtbwa:MSBuild CommandLineArguments="[String.Format(&quot;/p:SkipInvalidConfigurations=true {0}&quot;, MSBuildArguments)]" Configuration="[platformConfiguration.Configuration]" DisplayName="Run MSBuild for Project" GenerateVSPropsFile="[True]" sap:VirtualizedContainerService.HintSize="220,100" LogFileDropLocation="[logFileDropLocation]" OutDir="[outputDirectory]" Platform="[platformConfiguration.Platform]" Project="[localProject]" RunCodeAnalysis="[RunCodeAnalysis]" TargetsNotLogged="[New String() {&quot;GetNativeManifest&quot;, &quot;GetCopyToOutputDirectoryItems&quot;, &quot;GetTargetPath&quot;}]" ToolPlatform="[MSBuildPlatform]" Verbosity="[Verbosity]" />
  312. </If.Else>
  313. </If>
  314. </Sequence>
  315. </TryCatch.Try>
  316. <TryCatch.Catches>
  317. <Catch x:TypeArguments="s:Exception" sap:VirtualizedContainerService.HintSize="492,526">
  318. <sap:WorkflowViewStateService.ViewState>
  319. <scg:Dictionary x:TypeArguments="x:String, x:Object">
  320. <x:Boolean x:Key="IsExpanded">False</x:Boolean>
  321. </scg:Dictionary>
  322. </sap:WorkflowViewStateService.ViewState>
  323. <ActivityAction x:TypeArguments="s:Exception">
  324. <ActivityAction.Argument>
  325. <DelegateInArgument x:TypeArguments="s:Exception" Name="ex" />
  326. </ActivityAction.Argument>
  327. <Sequence DisplayName="Handle Exception" sap:VirtualizedContainerService.HintSize="486,495">
  328. <sap:WorkflowViewStateService.ViewState>
  329. <scg:Dictionary x:TypeArguments="x:String, x:Object">
  330. <x:Boolean x:Key="IsExpanded">True</x:Boolean>
  331. </scg:Dictionary>
  332. </sap:WorkflowViewStateService.ViewState>
  333. <mtbwa:SetBuildProperties CompilationStatus="[Microsoft.TeamFoundation.Build.Client.BuildPhaseStatus.Failed]" DisplayName="Set CompilationStatus to Failed" sap:VirtualizedContainerService.HintSize="464,22" mtbwt:BuildTrackingParticipant.Importance="Low" PropertiesToSet="CompilationStatus" />
  334. <If Condition="[CreateWorkItem]" DisplayName="If CreateWorkItem" sap:VirtualizedContainerService.HintSize="464,247" mtbwt:BuildTrackingParticipant.Importance="Low">
  335. <If.Then>
  336. <mtbwa:InvokeForReason DisplayName="Create Work Item for non-Shelveset Builds" sap:VirtualizedContainerService.HintSize="281,146" Reason="Manual, IndividualCI, BatchedCI, Schedule, ScheduleForced, UserCreated">
  337. <mtbwa:OpenWorkItem AssignedTo="[BuildDetail.RequestedFor]" Comment="[&quot;This work item was created by TFS Build on a build failure.&quot;]" CustomFields="[New Dictionary(Of String, String) From { {&quot;System.Reason&quot;, &quot;Build Failure&quot;}, {&quot;Microsoft.VSTS.TCM.ReproSteps&quot;, &quot;Start the build using TFS Build&quot;}, {&quot;Priority&quot;, &quot;1&quot;}, {&quot;Severity&quot;, &quot;1 - Critical&quot;} }]" DisplayName="Create Work Item" sap:VirtualizedContainerService.HintSize="200,22" Title="[String.Format(&quot;Build Failure in Build: {0}&quot;, BuildDetail.BuildNumber)]" Type="[&quot;Bug&quot;]" />
  338. </mtbwa:InvokeForReason>
  339. </If.Then>
  340. </If>
  341. <Rethrow DisplayName="Rethrow the exception so the build will stop" sap:VirtualizedContainerService.HintSize="464,22" mtbwt:BuildTrackingParticipant.Importance="Low" />
  342. </Sequence>
  343. </ActivityAction>
  344. </Catch>
  345. </TryCatch.Catches>
  346. </TryCatch>
  347. </ActivityAction>
  348. </ForEach>
  349. </If.Then>
  350. </If>
  351. <If Condition="[Not DisableTests]" DisplayName="If Not DisableTests" sap:VirtualizedContainerService.HintSize="1178,1930" mtbwt:BuildTrackingParticipant.Importance="Low">
  352. <If.Then>
  353. <Sequence DisplayName="Run Tests" sap:VirtualizedContainerService.HintSize="1053,1829" mtbwt:BuildTrackingParticipant.Importance="Low">
  354. <sap:WorkflowViewStateService.ViewState>
  355. <scg:Dictionary x:TypeArguments="x:String, x:Object">
  356. <x:Boolean x:Key="IsExpanded">True</x:Boolean>
  357. </scg:Dictionary>
  358. </sap:WorkflowViewStateService.ViewState>
  359. <If Condition="[Not TestSpecs Is Nothing]" DisplayName="If Not TestSpecs Is Nothing" sap:VirtualizedContainerService.HintSize="1031,1705" mtbwt:BuildTrackingParticipant.Importance="Low">
  360. <If.Then>
  361. <ForEach x:TypeArguments="mtbwa:TestSpec" DisplayName="For Each TestSpec in TestSpecs" sap:VirtualizedContainerService.HintSize="906,1604" mtbwt:BuildTrackingParticipant.Importance="Low" Values="[TestSpecs]">
  362. <ActivityAction x:TypeArguments="mtbwa:TestSpec">
  363. <ActivityAction.Argument>
  364. <DelegateInArgument x:TypeArguments="mtbwa:TestSpec" Name="spec" />
  365. </ActivityAction.Argument>
  366. <TryCatch DisplayName="Try Run Tests" sap:VirtualizedContainerService.HintSize="876,1501" mtbwt:BuildTrackingParticipant.Importance="Low">
  367. <TryCatch.Try>
  368. <If Condition="[TypeOf spec Is Microsoft.TeamFoundation.Build.Workflow.Activities.TestMetadataFileSpec]" DisplayName="If spec Is TestMetadataFileSpec" sap:VirtualizedContainerService.HintSize="858,759" mtbwt:BuildTrackingParticipant.Importance="None">
  369. <If.Then>
  370. <Sequence DisplayName="Run MSTest for Metadata File" sap:VirtualizedContainerService.HintSize="222,658">
  371. <Sequence.Variables>
  372. <Variable x:TypeArguments="mtbwa:TestMetadataFileSpec" Name="testMetadataFile" />
  373. <Variable x:TypeArguments="x:String" Name="localTestMetadata" />
  374. </Sequence.Variables>
  375. <sap:WorkflowViewStateService.ViewState>
  376. <scg:Dictionary x:TypeArguments="x:String, x:Object">
  377. <x:Boolean x:Key="IsExpanded">True</x:Boolean>
  378. </scg:Dictionary>
  379. </sap:WorkflowViewStateService.ViewState>
  380. <Assign x:TypeArguments="mtbwa:TestMetadataFileSpec" DisplayName="Assign spec to testMetadataFile" sap:VirtualizedContainerService.HintSize="200,22" mtbwt:BuildTrackingParticipant.Importance="Low" To="[testMetadataFile]" Value="[DirectCast(spec, Microsoft.TeamFoundation.Build.Workflow.Activities.TestMetadataFileSpec)]" />
  381. <mtbwa:ConvertWorkspaceItem DisplayName="Convert Server Path to Local Path" sap:VirtualizedContainerService.HintSize="200,22" mtbwt:BuildTrackingParticipant.Importance="Low" Input="[testMetadataFile.MetadataFileName]" Result="[localTestMetadata]" Workspace="[Workspace]" />
  382. <mtbwa:MSTest Category="[testMetadataFile.CategoryFilter]" CommandLineArguments="[testMetadataFile.MSTestCommandLineArgs]" DisplayName="Run MSTest for Metadata File" Flavor="[platformConfiguration.Configuration]" sap:VirtualizedContainerService.HintSize="200,22" MaxPriority="[testMetadataFile.MaximumPriority]" MinPriority="[testMetadataFile.MinimumPriority]" PathToResultsFilesRoot="[TestResultsDirectory]" Platform="[platformConfiguration.Platform]" SearchPathRoot="[outputDirectory]" TestLists="[testMetadataFile.TestLists]" TestMetadata="[localTestMetadata]" TestSettings="[String.Empty]" />
  383. </Sequence>
  384. </If.Then>
  385. <If.Else>
  386. <Sequence DisplayName="Run MSTest for Test Assemblies" sap:VirtualizedContainerService.HintSize="611,658" mtbwt:BuildTrackingParticipant.Importance="Low">
  387. <Sequence.Variables>
  388. <Variable x:TypeArguments="mtbwa:TestAssemblySpec" Name="testAssembly" />
  389. <Variable x:TypeArguments="scg:IEnumerable(x:String)" Name="testAssemblies" />
  390. <Variable x:TypeArguments="x:String" Default="[String.Empty]" Name="testFlavor" />
  391. <Variable x:TypeArguments="x:String" Default="[String.Empty]" Name="testPlatform" />
  392. </Sequence.Variables>
  393. <sap:WorkflowViewStateService.ViewState>
  394. <scg:Dictionary x:TypeArguments="x:String, x:Object">
  395. <x:Boolean x:Key="IsExpanded">True</x:Boolean>
  396. </scg:Dictionary>
  397. </sap:WorkflowViewStateService.ViewState>
  398. <Assign x:TypeArguments="mtbwa:TestAssemblySpec" DisplayName="Assign spec to testAssembly" sap:VirtualizedContainerService.HintSize="589,22" mtbwt:BuildTrackingParticipant.Importance="Low" To="[testAssembly]" Value="[DirectCast(spec, Microsoft.TeamFoundation.Build.Workflow.Activities.TestAssemblySpec)]" />
  399. <mtbwa:FindMatchingFiles DisplayName="Find Test Assemblies" sap:VirtualizedContainerService.HintSize="589,22" mtbwt:BuildTrackingParticipant.Importance="Low" MatchPattern="[String.Format(&quot;{0}\{1}&quot;, outputDirectory, testAssembly.AssemblyFileSpec)]" Result="[testAssemblies]" />
  400. <If Condition="[testAssemblies.Count() &gt; 0]" DisplayName="If Test Assemblies Found" sap:VirtualizedContainerService.HintSize="589,410" mtbwt:BuildTrackingParticipant.Importance="Low">
  401. <If.Then>
  402. <If Condition="[testAssembly.HasTestSettingsFile]" DisplayName="If testAssembly.HasTestSettingsFile" sap:VirtualizedContainerService.HintSize="464,309" mtbwt:BuildTrackingParticipant.Importance="Low">
  403. <If.Then>
  404. <Sequence DisplayName="Find Test Settings File And Run MSTest" sap:VirtualizedContainerService.HintSize="231,208" mtbwt:BuildTrackingParticipant.Importance="Low">
  405. <Sequence.Variables>
  406. <Variable x:TypeArguments="x:String" Name="localTestSettings" />
  407. </Sequence.Variables>
  408. <sap:WorkflowViewStateService.ViewState>
  409. <scg:Dictionary x:TypeArguments="x:String, x:Object">
  410. <x:Boolean x:Key="IsExpanded">True</x:Boolean>
  411. </scg:Dictionary>
  412. </sap:WorkflowViewStateService.ViewState>
  413. <mtbwa:ConvertWorkspaceItem DisplayName="Convert Server Path to Local Path" sap:VirtualizedContainerService.HintSize="200,22" mtbwt:BuildTrackingParticipant.Importance="Low" Input="[testAssembly.TestSettingsFileName]" Result="[localTestSettings]" Workspace="[Workspace]" />
  414. <mtbwa:MSTest Category="[testAssembly.CategoryFilter]" CommandLineArguments="[testAssembly.MSTestCommandLineArgs]" DisplayName="Run MSTest for Test Assemblies" Flavor="[platformConfiguration.Configuration]" sap:VirtualizedContainerService.HintSize="200,22" MaxPriority="[testAssembly.MaximumPriority]" MinPriority="[testAssembly.MinimumPriority]" PathToResultsFilesRoot="[TestResultsDirectory]" Platform="[platformConfiguration.Platform]" SearchPathRoot="[outputDirectory]" TestContainers="[testAssemblies]" TestSettings="[localTestSettings]" />
  415. </Sequence>
  416. </If.Then>
  417. <If.Else>
  418. <mtbwa:MSTest Category="[testAssembly.CategoryFilter]" CommandLineArguments="[testAssembly.MSTestCommandLineArgs]" DisplayName="Run MSTest for Test Assemblies" Flavor="[platformConfiguration.Configuration]" sap:VirtualizedContainerService.HintSize="208,208" MaxPriority="[testAssembly.MaximumPriority]" MinPriority="[testAssembly.MinimumPriority]" PathToResultsFilesRoot="[TestResultsDirectory]" Platform="[platformConfiguration.Platform]" SearchPathRoot="[outputDirectory]" TestContainers="[testAssemblies]" />
  419. </If.Else>
  420. </If>
  421. </If.Then>
  422. </If>
  423. </Sequence>
  424. </If.Else>
  425. </If>
  426. </TryCatch.Try>
  427. <TryCatch.Catches>
  428. <Catch x:TypeArguments="s:Exception" sap:VirtualizedContainerService.HintSize="862,480">
  429. <sap:WorkflowViewStateService.ViewState>
  430. <scg:Dictionary x:TypeArguments="x:String, x:Object">
  431. <x:Boolean x:Key="IsExpanded">False</x:Boolean>
  432. </scg:Dictionary>
  433. </sap:WorkflowViewStateService.ViewState>
  434. <ActivityAction x:TypeArguments="s:Exception">
  435. <ActivityAction.Argument>
  436. <DelegateInArgument x:TypeArguments="s:Exception" Name="testException" />
  437. </ActivityAction.Argument>
  438. <Sequence DisplayName="Handle MSTest Exception" sap:VirtualizedContainerService.HintSize="856,449">
  439. <sap:WorkflowViewStateService.ViewState>
  440. <scg:Dictionary x:TypeArguments="x:String, x:Object">
  441. <x:Boolean x:Key="IsExpanded">True</x:Boolean>
  442. </scg:Dictionary>
  443. </sap:WorkflowViewStateService.ViewState>
  444. <If Condition="[Not (TypeOf testException Is Microsoft.TeamFoundation.Build.Workflow.Activities.TestFailureException)]" DisplayName="If testException is NOT TestFailureException" mtbwt:BuildTrackingParticipant.Importance="Low">
  445. <If.Then>
  446. <mtbwa:WriteBuildError DisplayName="Write Test Failure Exception message" Message="[testException.Message]" />
  447. </If.Then>
  448. </If>
  449. <mtbwa:SetBuildProperties DisplayName="Set TestStatus to Failed" sap:VirtualizedContainerService.HintSize="464,22" mtbwt:BuildTrackingParticipant.Importance="Low" PropertiesToSet="TestStatus" TestStatus="[Microsoft.TeamFoundation.Build.Client.BuildPhaseStatus.Failed]" />
  450. <If Condition="[spec.FailBuildOnFailure]" DisplayName="If spec.FailBuildOnFailure" sap:VirtualizedContainerService.HintSize="464,201" mtbwt:BuildTrackingParticipant.Importance="Low">
  451. <If.Then>
  452. <Assign x:TypeArguments="x:Boolean" DisplayName="Set treatTestFailureAsBuildFailure to True" sap:VirtualizedContainerService.HintSize="269,100" mtbwt:BuildTrackingParticipant.Importance="Low" To="[treatTestFailureAsBuildFailure]" Value="[True]" />
  453. </If.Then>
  454. </If>
  455. </Sequence>
  456. </ActivityAction>
  457. </Catch>
  458. </TryCatch.Catches>
  459. </TryCatch>
  460. </ActivityAction>
  461. </ForEach>
  462. </If.Then>
  463. </If>
  464. </Sequence>
  465. </If.Then>
  466. </If>
  467. </Sequence>
  468. </ActivityAction>
  469. </ForEach>
  470. <If Condition="[BuildDetail.CompilationStatus = Microsoft.TeamFoundation.Build.Client.BuildPhaseStatus.Unknown]" DisplayName="If CompilationStatus = Unknown" sap:VirtualizedContainerService.HintSize="1230,201" mtbwt:BuildTrackingParticipant.Importance="Low">
  471. <If.Then>
  472. <mtbwa:SetBuildProperties CompilationStatus="[Microsoft.TeamFoundation.Build.Client.BuildPhaseStatus.Succeeded]" DisplayName="Set CompilationStatus to Succeeded" sap:VirtualizedContainerService.HintSize="269,100" mtbwt:BuildTrackingParticipant.Importance="Low" PropertiesToSet="CompilationStatus" />
  473. </If.Then>
  474. </If>
  475. <If Condition="[BuildDetail.TestStatus = Microsoft.TeamFoundation.Build.Client.BuildPhaseStatus.Unknown]" DisplayName="If TestStatus = Unknown" sap:VirtualizedContainerService.HintSize="1230,201" mtbwt:BuildTrackingParticipant.Importance="Low">
  476. <If.Then>
  477. <mtbwa:SetBuildProperties DisplayName="Set TestStatus to Succeeded" sap:VirtualizedContainerService.HintSize="269,100" mtbwt:BuildTrackingParticipant.Importance="Low" PropertiesToSet="TestStatus" TestStatus="[Microsoft.TeamFoundation.Build.Client.BuildPhaseStatus.Succeeded]" />
  478. </If.Then>
  479. </If>
  480. <If Condition="[treatTestFailureAsBuildFailure And (BuildDetail.TestStatus = Microsoft.TeamFoundation.Build.Client.BuildPhaseStatus.Failed)]" DisplayName="If TreatTestFailureAsBuildFailure And (TestStatus = Failed)" sap:VirtualizedContainerService.HintSize="1230,201" mtbwt:BuildTrackingParticipant.Importance="Low">
  481. <If.Then>
  482. <mtbwa:SetBuildProperties DisplayName="Set Status to Failed" sap:VirtualizedContainerService.HintSize="269,100" mtbwt:BuildTrackingParticipant.Importance="Low" PropertiesToSet="Status" Status="[Microsoft.TeamFoundation.Build.Client.BuildStatus.Failed]" />
  483. </If.Then>
  484. </If>
  485. </Sequence>
  486. </TryCatch.Try>
  487. <TryCatch.Catches>
  488. <Catch x:TypeArguments="s:Exception" sap:VirtualizedContainerService.HintSize="1256,106">
  489. <sap:WorkflowViewStateService.ViewState>
  490. <scg:Dictionary x:TypeArguments="x:String, x:Object">
  491. <x:Boolean x:Key="IsExpanded">False</x:Boolean>
  492. </scg:Dictionary>
  493. </sap:WorkflowViewStateService.ViewState>
  494. <ActivityAction x:TypeArguments="s:Exception">
  495. <ActivityAction.Argument>
  496. <DelegateInArgument x:TypeArguments="s:Exception" Name="compilationExceptionArgument" />
  497. </ActivityAction.Argument>
  498. <Assign x:TypeArguments="s:Exception" DisplayName="Save the Compilation Exception" sap:VirtualizedContainerService.HintSize="1250,75" mtbwt:BuildTrackingParticipant.Importance="None" To="[compilationException]" Value="[compilationExceptionArgument]" />
  499. </ActivityAction>
  500. </Catch>
  501. </TryCatch.Catches>
  502. </TryCatch>
  503. <If Condition="[AssociateChangesetsAndWorkItems]" DisplayName="If AssociateChangesetsAndWorkItems" sap:VirtualizedContainerService.HintSize="464,5218" mtbwt:BuildTrackingParticipant.Importance="Low">
  504. <If.Then>
  505. <mtbwa:InvokeForReason DisplayName="Associate Changesets and Work Items for non-Shelveset Builds" sap:VirtualizedContainerService.HintSize="281,146" Reason="Manual, IndividualCI, BatchedCI, Schedule, ScheduleForced, UserCreated">
  506. <mtbwa:AssociateChangesetsAndWorkItems DisplayName="Associate Changesets and Work Items" Result="[associatedChangesets]" />
  507. </mtbwa:InvokeForReason>
  508. </If.Then>
  509. </If>
  510. </Parallel>
  511. <If Condition="[Not compilationException Is Nothing]" DisplayName="If a Compilation Exception Occurred" sap:VirtualizedContainerService.HintSize="1888,201" mtbwt:BuildTrackingParticipant.Importance="Low">
  512. <If.Then>
  513. <Throw DisplayName="Rethrow Compilation Exception" Exception="[compilationException]" sap:VirtualizedContainerService.HintSize="269,100" mtbwt:BuildTrackingParticipant.Importance="Low" />
  514. </If.Then>
  515. </If>
  516. <Parallel DisplayName="Get Impacted Tests, Index Sources and Publish Symbols" sap:VirtualizedContainerService.HintSize="1888,1557">
  517. <If Condition="[PerformTestImpactAnalysis]" DisplayName="If PerformTestImpactAnalysis" sap:VirtualizedContainerService.HintSize="464,1511" mtbwt:BuildTrackingParticipant.Importance="Low">
  518. <If.Then>
  519. <Sequence DisplayName="Get Impacted Tests" sap:VirtualizedContainerService.HintSize="281,208" mtbwt:BuildTrackingParticipant.Importance="Low">
  520. <Sequence.Variables>
  521. <Variable x:TypeArguments="scg:IEnumerable(x:String)" Name="assemblies" />
  522. </Sequence.Variables>
  523. <sap:WorkflowViewStateService.ViewState>
  524. <scg:Dictionary x:TypeArguments="x:String, x:Object">
  525. <x:Boolean x:Key="IsExpanded">True</x:Boolean>
  526. </scg:Dictionary>
  527. </sap:WorkflowViewStateService.ViewState>
  528. <mtbwa:FindMatchingFiles DisplayName="Find Build Outputs" sap:VirtualizedContainerService.HintSize="200,22" mtbwt:BuildTrackingParticipant.Importance="Low" MatchPattern="[String.Format(&quot;{0}\**\*.dll;{0}\**\*.exe&quot;, BinariesDirectory)]" Result="[assemblies]" />
  529. <mttbb:GetImpactedTests Assemblies="[assemblies]" AssociatedChangesets="[associatedChangesets]" BinariesRoot="[BinariesDirectory]" Build="[BuildDetail]" CodeChanges="{x:Null}" DisplayName="Get Impacted Tests" ImpactedTests="{x:Null}" Workspace="[Workspace]" />
  530. </Sequence>
  531. </If.Then>
  532. </If>
  533. <If Condition="[SourceAndSymbolServerSettings.IndexSources Or SourceAndSymbolServerSettings.HasSymbolStorePath]" DisplayName="If SourceAndSymbolServerSettings.IndexSources Or SourceAndSymbolServerSettings.HasSymbolStorePath" sap:VirtualizedContainerService.HintSize="690,1511" mtbwt:BuildTrackingParticipant.Importance="Low">
  534. <If.Then>
  535. <mtbwa:InvokeForReason DisplayName="Index Sources and Publish Symbols for Triggered Builds" sap:VirtualizedContainerService.HintSize="565,1410" Reason="Triggered">
  536. <mtbwa:InvokeForReason.Variables>
  537. <Variable x:TypeArguments="scg:IEnumerable(x:String)" Name="symbolFiles" />
  538. </mtbwa:InvokeForReason.Variables>
  539. <mtbwa:FindMatchingFiles DisplayName="Find Symbol Files" sap:VirtualizedContainerService.HintSize="543,22" mtbwt:BuildTrackingParticipant.Importance="Low" MatchPattern="[String.Format(&quot;{0}\**\*.pdb&quot;, BinariesDirectory)]" Result="[symbolFiles]" />
  540. <If Condition="[SourceAndSymbolServerSettings.IndexSources]" DisplayName="If SourceAndSymbolServerSettings.IndexSources" sap:VirtualizedContainerService.HintSize="543,569" mtbwt:BuildTrackingParticipant.Importance="Low">
  541. <If.Then>
  542. <TryCatch DisplayName="Try Index Sources" sap:VirtualizedContainerService.HintSize="418,468" mtbwt:BuildTrackingParticipant.Importance="Low">
  543. <TryCatch.Try>
  544. <mtbwa:IndexSources DisplayName="Index Sources" FileList="[symbolFiles]" sap:VirtualizedContainerService.HintSize="400,100" />
  545. </TryCatch.Try>
  546. <TryCatch.Catches>
  547. <Catch x:TypeArguments="s:Exception" sap:VirtualizedContainerService.HintSize="404,106">
  548. <sap:WorkflowViewStateService.ViewState>
  549. <scg:Dictionary x:TypeArguments="x:String, x:Object">
  550. <x:Boolean x:Key="IsExpanded">False</x:Boolean>
  551. </scg:Dictionary>
  552. </sap:WorkflowViewStateService.ViewState>
  553. <ActivityAction x:TypeArguments="s:Exception">
  554. <ActivityAction.Argument>
  555. <DelegateInArgument x:TypeArguments="s:Exception" Name="exception" />
  556. </ActivityAction.Argument>
  557. <mtbwa:WriteBuildError sap:VirtualizedContainerService.HintSize="398,75" Message="[exception.Message]" />
  558. </ActivityAction>
  559. </Catch>
  560. </TryCatch.Catches>
  561. </TryCatch>
  562. </If.Then>
  563. </If>
  564. <If Condition="[SourceAndSymbolServerSettings.HasSymbolStorePath]" DisplayName="If SourceAndSymbolServerSettings.HasSymbolStorePath" sap:VirtualizedContainerService.HintSize="543,615" mtbwt:BuildTrackingParticipant.Importance="Low">
  565. <If.Then>
  566. <TryCatch DisplayName="Try Publish Symbols" sap:VirtualizedContainerService.HintSize="418,514" mtbwt:BuildTrackingParticipant.Importance="Low">
  567. <TryCatch.Try>
  568. <mtbwa:SharedResourceScope DisplayName="Synchronize Access to Symbol Store" sap:VirtualizedContainerService.HintSize="400,146" mtbwt:BuildTrackingParticipant.Importance="Low" MaxExecutionTime="[TimeSpan.Zero]" MaxWaitTime="[New TimeSpan(1, 0, 0)]" ResourceName="[SourceAndSymbolServerSettings.SymbolStorePath]">
  569. <mtbwa:PublishSymbols DisplayName="Publish Symbols" FileList="[symbolFiles]" sap:VirtualizedContainerService.HintSize="200,22" ProductName="[BuildDetail.BuildDefinition.Name]" StorePath="[SourceAndSymbolServerSettings.SymbolStorePath]" Version="[BuildDetail.BuildNumber]" />
  570. </mtbwa:SharedResourceScope>
  571. </TryCatch.Try>
  572. <TryCatch.Catches>
  573. <Catch x:TypeArguments="s:Exception" sap:VirtualizedContainerService.HintSize="404,106">
  574. <sap:WorkflowViewStateService.ViewState>
  575. <scg:Dictionary x:TypeArguments="x:String, x:Object">
  576. <x:Boolean x:Key="IsExpanded">False</x:Boolean>
  577. </scg:Dictionary>
  578. </sap:WorkflowViewStateService.ViewState>
  579. <ActivityAction x:TypeArguments="s:Exception">
  580. <ActivityAction.Argument>
  581. <DelegateInArgument x:TypeArguments="s:Exception" Name="exception" />
  582. </ActivityAction.Argument>
  583. <mtbwa:WriteBuildError sap:VirtualizedContainerService.HintSize="398,75" Message="[exception.Message]" />
  584. </ActivityAction>
  585. </Catch>
  586. </TryCatch.Catches>
  587. </TryCatch>
  588. </If.Then>
  589. </If>
  590. </mtbwa:InvokeForReason>
  591. </If.Then>
  592. </If>
  593. </Parallel>
  594. </Sequence>
  595. </TryCatch.Try>
  596. </TryCatch>
  597. </mtbwa:AgentScope>
  598. <mtbwa:InvokeForReason DisplayName="Check In Gated Changes for CheckInShelveset Builds" sap:VirtualizedContainerService.HintSize="1950,146" Reason="CheckInShelveset">
  599. <mtbwa:CheckInGatedChanges DisplayName="Check In Gated Changes" sap:VirtualizedContainerService.HintSize="200,22" />
  600. </mtbwa:InvokeForReason>
  601. </Sequence>
  602. </Activity>