2021-08-20 10:27:07 -04:00
<?xml version='1.0' ?>
<BuildGraph xmlns= "http://www.epicgames.com/BuildGraph" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation= "http://www.epicgames.com/BuildGraph ../../../Build/Graph/Schema.xsd" >
<!-- Horde Options -->
<EnvVar Name= "UE_HORDE_JOBID" />
2024-01-19 10:19:49 -05:00
<EnvVar Name= "UE_HORDE_STEPID" />
2021-08-20 10:27:07 -04:00
<Option Name= "Horde" Restrict= "true|false" DefaultValue= "false" Description= "Whether the build is running under Horde" />
<Option Name= "PreflightChange" DefaultValue= "" Description= "Preflight CL number if preflight, empty otherwise" />
<Option Name= "SetPreflightFlag" DefaultValue= "true" Description= "Whether to set the IsPreflight flag to true for preflights. Use with caution: this will cause things like build versions to be set to their non-preflight form." />
<Property Name= "IsPreflight" Value= "false" />
<Property Name= "IsPreflight" Value= "true" If= "'$(PreflightChange)' != '' And $(SetPreflightFlag)" />
<Property Name= "PreflightSuffix" Value= "" />
<Property Name= "PreflightSuffix" Value= "-PF-$(PreflightChange)-$(UE_HORDE_JOBID)" If= "$(IsPreflight)" />
<Property Name= "BuildName" Value= "$(EscapedBranch)-CL-$(Change)$(PreflightSuffix)" />
2021-10-04 17:28:23 -04:00
<Option Name= "CompileCategory" DefaultValue= "Editors" Description= "Category string for Compile Label" />
<Option Name= "RunCategory" DefaultValue= "Test" Description= "Category string for Run Label" />
<Option Name= "BaselineCategory" DefaultValue= "Test" Description= "Category string for Baseline Label" />
2022-12-05 12:34:24 -05:00
<Option Name= "SingleAgentCompile" Restrict= "true|false" DefaultValue= "false" Description= "Run all compile steps on same agent" />
2023-09-13 13:44:07 -04:00
<Option Name= "AdditionalEditorCompileArgs" DefaultValue= "" Description= "Additional Compile Arguments for the Editor" />
2021-08-20 10:27:07 -04:00
<!-- Projects setup -->
<Option Name= "Projects" DefaultValue= "false" Restrict= ".+" Description= "The projects to test" />
<Error Message= "No project names specified" If= "'$(Projects)' == 'false'" />
<!-- Platform Options -->
<Option Name= "Platforms" DefaultValue= "Win64" Description= "The list of platforms to profile" />
2023-05-31 16:20:30 -04:00
<Property Name= "Win64CompileAgentType" Value= "Win64Compile;Win64" />
2021-08-20 10:27:07 -04:00
<Property Name= "MacCompileAgentType" Value= "TestMac" />
2023-03-30 16:44:58 -04:00
<Property Name= "LinuxCompileAgentType" Value= "Linux" />
2021-08-20 10:27:07 -04:00
<Error Message= "No platforms specified" If= "'$(Platforms)' == ''" />
<!-- Build Options -->
2022-12-05 12:34:24 -05:00
<Option Name= "NoDebugInfo" Restrict= "true|false" DefaultValue= "false" Description= "Compile without including debug info" />
2023-03-30 16:44:58 -04:00
<Option Name= "WithTSAN" Restrict= "true|false" DefaultValue= "false" Description= "Compile using TSAN" />
2021-08-20 10:27:07 -04:00
<Property Name= "ExtraPluginsCommaDelims" Value= "EditorTests" />
<Property Name= "ExtraPluginsPlusDelims" Value= "" /> <!-- populated programmatically -->
<ForEach Name= "Plugin" Values= "$(ExtraPluginsCommaDelims)" >
<Property Name= "ExtraPluginString" Value= "$(Plugin)" If= "'$(ExtraPluginsPlusDelims)' == ''" />
<Property Name= "ExtraPluginString" Value= "$(ExtraPluginsPlusDelims)+$(Plugin)" If= "'$(ExtraPluginsPlusDelims)' != ''" />
<Property Name= "ExtraPluginsPlusDelims" Value= "$(ExtraPluginString)" />
</ForEach>
2021-09-16 20:02:03 -04:00
<Property Name= "EditorCompileArgs" Value= "" />
<Property Name= "EditorCompileArgs" Value= "-BuildPlugin=$(ExtraPluginsPlusDelims)" If= "'$(ExtraPluginsPlusDelims)' != ''" />
2022-12-05 12:34:24 -05:00
<Property Name= "EditorCompileArgs" Value= "$(EditorCompileArgs) -nodebuginfo" If= "$(NoDebugInfo)" />
2023-03-30 16:44:58 -04:00
<Property Name= "EditorCompileArgs" Value= "$(EditorCompileArgs) -EnableTSAN -Monolithic" If= "$(WithTSAN)" />
2023-09-13 13:44:07 -04:00
<Property Name= "EditorCompileArgs" Value= "$(EditorCompileArgs) $(AdditionalEditorCompileArgs)" If= "'$(AdditionalEditorCompileArgs)' != ''" />
2021-08-20 10:27:07 -04:00
2024-01-19 10:19:49 -05:00
<!-- Get shared properties -->
<Include Script= "Graph/Tasks/Inc/SharedProperties.xml" />
2021-08-20 10:27:07 -04:00
<!-- Automation uses its own network output directory -->
2024-01-19 10:19:49 -05:00
<Property Name= "AutomationNetworkRootDir" Value= "$(NetworkReportRoot)\EditorPerf" />
<Property Name= "AutomationNetworkRootDir" Value= "$(NetworkReportRoot)/EditorPerf" If= "'$(HostPlatform)' != 'Win64'" />
2021-08-20 10:27:07 -04:00
<Property Name= "AutomationLocalOutputDir" Value= "$(RootDir)/LocalBuilds/Reports" />
<!-- Outputs for this run keeping slashes flipped the right way because it shows up on the webapp this way -->
<Property Name= "AutomationNetworkOutputDir" Value= "$(AutomationNetworkRootDir)\$(BuildName)" />
<Property Name= "AutomationNetworkOutputDir" Value= "$(AutomationNetworkRootDir)/$(BuildName)" If= "'$(HostPlatform)' != 'Win64'" />
<Property Name= "AutomationOutputDir" Value= "$(AutomationLocalOutputDir)" />
<Property Name= "AutomationOutputDir" Value= "$(AutomationNetworkOutputDir)" If= "$(IsBuildMachine)" />
<!-- Options for baselining -->
<Option Name= "RunAndBaseline" DefaultValue= "false" Description= "Enable graph dependencies for running and setting the baseline in a single build." />
<Option Name= "BaselineDir" DefaultValue= "$(RootDir)/Engine/Build/Baseline" Description= "The revision controlled location of the baseline telemetry files." />
<Option Name= "BaselineBuildName" DefaultValue= "$(BuildName)" Description= "The BuildName of the build to set as the new baseline to compare against." />
<Property Name= "BaselineAutomationNetworkOutputDir" Value= "$(AutomationNetworkRootDir)/$(BaselineBuildName)" />
<Property Name= "BaselineAutomationNetworkOutputDir" Value= "$(AutomationOutputDir)" If= "$(RunAndBaseline)" />
2024-02-10 12:55:05 -05:00
<!-- Options for warm+cold vs cold cache only -->
<Option Name= "IncludeWarmPhase" DefaultValue= "true" Description= "Whether to include a warm cache phase. Default is true and will run cold and warm tests. If false, only a cold test will run." />
<Property Name= "Phases" Value= "Cold;Warm" />
<Property Name= "Phases" Value= "Cold" If= "'$(IncludeWarmPhase)'=='false'" />
2021-08-20 10:27:07 -04:00
<!-- Arguments for tracing -->
<Property Name= "TraceDir" Value= "$(RootDir)/Engine/Programs/UnrealInsights/Saved/TraceSessions" />
<!-- Arguments for phases, keep in mind that these are passed to both the DDCCleanupCommandlet and RunUnreal -->
2022-11-28 19:16:48 -05:00
<Option Name= "EnableBasePhaseTests" DefaultValue= "true" Description= "Enable the base phase perf tests." />
2024-02-10 12:55:05 -05:00
<Option Name= "ColdArgs" DefaultValue= "-ddc=Cold -NoAssetRegistryCacheRead" Description= "Arguments to unreal for the cold phase" />
2021-08-20 10:27:07 -04:00
<Option Name= "WarmArgs" DefaultValue= "-ddc=Warm" Description= "Arguments to unreal for the warm phase" />
<!-- Iterations to run and average together -->
2021-11-03 19:58:01 -04:00
<Option Name= "Iterations" DefaultValue= "1" Description= "The list of iteration numbers to run. For example '1;2;3' for three iterations" />
2021-08-20 10:27:07 -04:00
2024-02-02 19:00:11 -05:00
<!-- Used to determine if we will include internal projects -->
<Option Name= "IsLicensee" Restrict= "true|false" DefaultValue= "false" Description= "Define to true if this script is used externally." />
2023-05-01 15:48:14 -04:00
2024-02-07 18:33:10 -05:00
<!-- Internal property to track all projects that have been declared -->
<Property Name= "AllProjects" Value= "" />
2024-02-02 19:00:11 -05:00
<!-- A macro that can be used to easily set up a new test project. -->
2024-02-07 18:33:10 -05:00
<Macro Name= "SetupPerfProject" Arguments= "ProjectName" OptionalArguments= "CopyDefaultsFrom;ProjectTarget;EditorTarget;MapPath;GameSpecificArgs;UseBinariesFrom;ExtraNonCopyableArgs" >
2024-02-02 19:00:11 -05:00
<Property Name= "$(ProjectName)__ProjectTarget" Value= "$(ProjectName)" CreateInParentScope= "true" />
<Property Name= "$(ProjectName)__ProjectTarget" Value= "$($(CopyDefaultsFrom)__ProjectTarget)" If= "'$(CopyDefaultsFrom)' != ''" />
<Property Name= "$(ProjectName)__ProjectTarget" Value= "$(ProjectTarget)" If= "'$(ProjectTarget)' != ''" />
<Property Name= "$(ProjectName)__EditorTarget" Value= "$(ProjectName)Editor" CreateInParentScope= "true" />
<Property Name= "$(ProjectName)__EditorTarget" Value= "$($(CopyDefaultsFrom)__EditorTarget)" If= "'$(CopyDefaultsFrom)' != ''" />
<Property Name= "$(ProjectName)__EditorTarget" Value= "$(EditorTarget)" If= "'$(EditorTarget)' != ''" />
<Property Name= "$(ProjectName)__MapArgs" Value= "" CreateInParentScope= "true" />
<Property Name= "$(ProjectName)__MapArgs" Value= "$($(CopyDefaultsFrom)__MapArgs)" If= "'$(CopyDefaultsFrom)' != ''" />
<Property Name= "$(ProjectName)__MapArgs" Value= "-ini:Engine:[/Script/Engine.AutomationTestSettings]:MapsToPIETest=\"$(MapPath)\"" If= "'$(MapPath)' != ''" />
<Property Name= "$(ProjectName)__SpecificArgs" Value= "" CreateInParentScope= "true" />
<Property Name= "$(ProjectName)__SpecificArgs" Value= "$($(CopyDefaultsFrom)__SpecificArgs)" If= "'$(CopyDefaultsFrom)' != ''" />
<Property Name= "$(ProjectName)__SpecificArgs" Value= "$(GameSpecificArgs)" If= "'$(GameSpecificArgs)' != ''" />
2024-02-07 18:33:10 -05:00
<Property Name= "$(ProjectName)__UseBinariesFrom" Value= "" CreateInParentScope= "true" />
<Property Name= "$(ProjectName)__UseBinariesFrom" Value= "$(CopyDefaultsFrom)" If= "'$(CopyDefaultsFrom)' != ''" />
<Property Name= "$(ProjectName)__UseBinariesFrom" Value= "$(UseBinariesFrom)" If= "'$(UseBinariesFrom)' != ''" />
<!-- Immediately resolve any indirections on UseBinariesFrom. We cannot support them later when we set up the actual nodes. -->
<Do If= "'$($(ProjectName)__UseBinariesFrom)' != ''" >
<Property Name= "$(ProjectName)__UseBinariesFrom" Value= "$($($(ProjectName)__UseBinariesFrom)__UseBinariesFrom)" If= "'$($($(ProjectName)__UseBinariesFrom)__UseBinariesFrom)' != ''" />
</Do>
<Property Name= "$(ProjectName)__ExtraNonCopyableArgs" Value= "" CreateInParentScope= "true" />
<Property Name= "$(ProjectName)__ExtraNonCopyableArgs" Value= "$(ExtraNonCopyableArgs)" If= "'$(ExtraNonCopyableArgs)' != ''" />
<Property Name= "AllProjects" Value= "$(AllProjects);$(ProjectName)" />
2024-02-02 19:00:11 -05:00
</Macro>
2022-12-07 18:21:54 -05:00
2023-06-13 16:46:06 -04:00
<!-- Inject internal projects default argument at the global scope -->
<Include Script= "../Restricted/NotForLicensees/Build/EditorPerfInternalArgs.xml" If= "!$(IsLicensee)" />
2023-10-14 12:40:57 -04:00
2024-02-10 12:55:05 -05:00
<!-- Option to retain per - branch asset registry between runs so that warm is representative of user experience -->
2023-10-14 12:40:57 -04:00
<Property Name= "AssetRegistryCache_Folder" Value= "$(RootDir)/../../../EditorPerfAssetRegistryCache/$(EscapedBranch)/" />
2023-03-30 16:44:58 -04:00
<!-- Options for extra runtime args -->
<Option Name= "AdditionalRuntimeArgs" DefaultValue= "" Description= "Additional Arguments to pass to RunTest" />
2022-12-07 18:21:54 -05:00
2022-11-28 19:16:48 -05:00
<!-- Options for extra Zen Loader tests -->
2022-10-27 15:27:55 -04:00
<Option Name= "EnableZenLoaderTest" DefaultValue= "true" Description= "Enable additional test per phase that uses the Zen Loader." />
2024-02-10 12:55:05 -05:00
<Option Name= "EnableZenLoaderAsyncThreadTest" DefaultValue= "false" Description= "Enable additional test per phase that uses the Zen Loader with an async loading thread." />
<Option Name= "DisableEditorDomainForZenLoaderTests" DefaultValue= "true" Description= "Explicitly disables editordomain (-noeditordomain) for zen loader tests" />
2022-10-13 10:52:46 -04:00
2024-02-07 18:33:10 -05:00
<!-- Option for number of PIE iterations to run (per editor launch) -->
<Property Name= "DefaultNumIterationsPie" Value= "2" />
<Option Name= "NumIterationsPIE" DefaultValue= "$(DefaultNumIterationsPIE)" Description= "Specify the number of times to start/stop PIE sessions in a single editor run." />
<Do If= "'$(NumIterationsPIE)' <= '0'" >
<Warning Message= "NumIterationPIE must be greater than 0. Setting to default of $(DefaultNumIterationsPIE)." />
<Property Name= "NumIterationsPIE" Value= "$(DefaultNumIterationsPIE)" />
</Do>
<Property Name= "ArgIterationsPIE" Value= "-ini:Engine:[ConsoleVariables]:project.iteration.pie.testiterations=$(NumIterationsPIE)" />
2022-10-13 10:52:46 -04:00
<!-- Zen Loader tests specifc arguments -->
2022-10-27 15:27:55 -04:00
<Property Name= "ZenLoaderTestArgs" Value= "-zenloader" />
2024-02-09 15:17:04 -05:00
<Property Name= "NoZenLoaderTestArgs" Value= "-nozenloader" />
2023-03-07 15:37:47 -05:00
<Property Name= "ZenLoaderAsyncTestArgs" Value= "$(ZenLoaderTestArgs) -asyncloadingthread" />
2022-10-27 15:27:55 -04:00
2024-02-10 12:55:05 -05:00
<Property Name= "ZenLoaderTestArgs" Value= "$(ZenLoaderTestArgs) -noeditordomain" If= "$(DisableEditorDomainForZenLoaderTests)" />
<Property Name= "ZenLoaderAsyncTestArgs" Value= "$(ZenLoaderAsyncTestArgs) -noeditordomain" If= "$(DisableEditorDomainForZenLoaderTests)" />
2022-10-13 10:52:46 -04:00
2022-11-28 19:16:48 -05:00
<!-- Options for extra Zen Store tests -->
<Option Name= "EnableZenStoreDDCTest" DefaultValue= "false" Description= "Enable additional test on warm phase that uses the Zen Store DDC." />
<!-- Zen Store tests specific arguments -->
<Property Name= "ZenServerCache" Value= "$(RootDir)\ZenCache" />
2023-03-07 15:37:47 -05:00
<Property Name= "ZenStoreCommonArgs" Value= "-ini:Engine:[Zen.AutoLaunch]:LimitProcessLifetime=true -ZenDataPath=$(ZenServerCache) " />
2022-11-28 19:16:48 -05:00
<Property Name= "ZenStoreDDCPhaseArgs" Value= "-ddc=ZenDDC" />
<Property Name= "ZenStoreDDCTestArgs" Value= "$(ZenStoreCommonArgs)" />
<!-- Options for extra LazyLoad tests -->
2024-02-10 12:55:05 -05:00
<Option Name= "EnableLazyLoadNoZenLoaderTest" DefaultValue= "false" Description= "Enable additional test on warm phase that uses LazyLoad with Zen Loader disabled." />
<Option Name= "EnableLazyLoadZenLoaderTest" DefaultValue= "false" Description= "Enable additional test on warm phase that uses LazyLoad with Zen Loader enabled." />
2022-11-28 19:16:48 -05:00
<!-- LazyLoad tests specific arguments -->
<Property Name= "LazyLoadTestArgs" Value= "-LazyLoadImports" />
2023-03-07 15:37:47 -05:00
<Property Name= "LazyLoadZenTestArgs" Value= "$(LazyLoadTestArgs) -zenloader" />
2022-11-28 19:16:48 -05:00
2021-08-20 10:27:07 -04:00
<!-- Gauntlet arguments for all runs -->
2023-07-31 09:29:53 -04:00
<Property Name= "GauntletArgs" Value= "-build=editor -verbose -tempdir="$(RootDir)/Tests"" />
2021-08-20 10:27:07 -04:00
<Property Name= "GauntletArgs" Value= "$(GauntletArgs) -branch=$(Branch) -ECBranch="$(Branch)" -ECChangelist="$(Change)"" />
<Property Name= "GauntletArgs" Value= "$(GauntletArgs) -maxduration=28800" />
<!-- Gauntlet arguments for profile runs -->
2023-07-21 21:34:35 -04:00
<Property Name= "ProfileArgs" Value= "-test=EditorTests -tracefiletrunc" />
2021-08-20 10:27:07 -04:00
<Property Name= "ProfileArgs" Value= "$(ProfileArgs) -EnablePlugins=$(ExtraPluginsCommaDelims)" If= "'$(ExtraPluginsCommaDelims)' != ''" />
2021-09-15 16:52:23 -04:00
<Property Name= "ProfileArgs" Value= "$(ProfileArgs) -SuppressLogWarnings -SuppressLogErrors" />
2021-08-20 10:27:07 -04:00
<Property Name= "ProfileArgs" Value= "$(ProfileArgs) -GameInstanceLostTimerSeconds=3600" />
<Property Name= "ProfileArgs" Value= "$(ProfileArgs) -NoLoadLevelAtStartup -Benchmarking -NODDCCLEANUP" />
<Property Name= "ProfileArgs" Value= "$(ProfileArgs) -NoShaderDistrib -VerboseShaderLogging" />
2023-07-31 09:29:53 -04:00
<Property Name= "ProfileArgs" Value= "$(ProfileArgs) -ResumeOnCriticalFailure" />
2021-08-20 10:27:07 -04:00
2023-05-09 16:27:59 -04:00
<!-- options for summarize runs -->
2023-05-09 16:28:22 -04:00
<Option Name= "RunTraceSummary" DefaultValue= "false" Description= "Summarize the insights trace after the run" />
2023-05-09 16:27:59 -04:00
2021-08-20 10:27:07 -04:00
<!-- Gauntlet arguments for commandlet, summarize runs -->
2022-06-20 13:06:30 -04:00
<Property Name= "CommandletArgs" Value= "-notraceserver" />
2021-08-20 10:27:07 -04:00
<Property Name= "SummarizeArgs" Value= "" />
<Property Name= "SummarizeArgs" Value= "-skipbaseline" If= "$(RunAndBaseline)" />
2021-10-26 10:13:23 -04:00
<!-- Publish telemetry options -->
<Option Name= "TelemetryConfig" DefaultValue= "" Description= "The configuration to use when publishing telemetry data to a database" />
2023-05-09 16:27:59 -04:00
<Property Name= "TelemetryConfig" Value= "UETelemetryStaging" If= "$(IsBuildMachine) And $(IsPreflight) And '$(TelemetryConfig)' == '' And $(RunTraceSummary)" />
<Property Name= "TelemetryConfig" Value= "UETelemetry" If= "$(IsBuildMachine) And '$(TelemetryConfig)' == '' And $(RunTraceSummary)" />
2024-01-19 10:19:49 -05:00
<Option Name= "ExtraTelemetryArgs" DefaultValue= "" Description= "Extra arguments passed to the publish telemetry command" />
<Property Name= "ExtraTelemetryArgs" Value= "$(ExtraTelemetryArgs) -JobLink="$(HordeDashboardURL)/job/$(UE_HORDE_JOBID)?step=$(UE_HORDE_STEPID)"" If= "'$(HordeDashboardURL)' != ''" />
2021-10-26 10:13:23 -04:00
2021-08-20 10:27:07 -04:00
<!-- The main test running macro logic that is expanded with platform and dependency node names -->
2023-05-01 15:48:14 -04:00
<Macro Name= "RunTest" Arguments= "TestNameSuffix;Platform;ProjectName;ProjectTarget;NodeName;Phase;Iteration;Args;EditorArgs" >
2022-10-27 15:27:55 -04:00
<Property Name= "TestName" Value= "EditorPerf$(Phase)$(TestNameSuffix)" />
2023-07-21 21:34:35 -04:00
<Property Name= "TestFilter" Value= "Project.Iteration.PIE" />
2023-07-31 09:29:53 -04:00
<Property Name= "TestFilterArgs" Value= "-runtest=$(TestFilter)" />
2022-10-27 15:27:55 -04:00
<Property Name= "IterationSuffix" Value= "" />
<Property Name= "IterationSuffix" Value= "$(Iteration)" If= "'$(Iteration)' != '1'" />
2023-05-01 15:48:14 -04:00
<Property Name= "TestOutputDir" Value= "$(AutomationOutputDir)/$(ProjectName)$(Platform)EditorPerf" />
2022-10-27 15:27:55 -04:00
2023-05-01 15:48:14 -04:00
<Property Name= "IterationName" Value= "$(ProjectName)$(Platform)$(TestName)$(IterationSuffix)" />
2021-11-03 19:58:01 -04:00
<Property Name= "TraceFilePath" Value= "$(TraceDir)/$(IterationName).utrace" />
<Property Name= "TelemetryFileName" Value= "$(IterationName)Telemetry.csv" />
<Property Name= "TelemetryFilePath" Value= "$(TraceDir)/$(TelemetryFileName)" />
2023-06-16 13:20:57 -04:00
2022-10-27 15:27:55 -04:00
<Property Name= "LogOutputParams" Value= "-logdir="$(TestOutputDir)"" />
2021-11-03 19:58:01 -04:00
<Property Name= "ReportParams" Value= "-WriteTestResultsForHorde -HordeTestDataKey="$(NodeName)$(PreflightSuffix)"" />
2022-10-27 15:27:55 -04:00
<Property Name= "ArtifactName" Value= "$(Phase)$(IterationSuffix)$(TestNameSuffix)" />
2023-05-01 15:48:14 -04:00
<Property Name= "AllGauntletArgs" Value= "-Project=$(ProjectTarget) -Platform=$(Platform) $(GauntletArgs) $(ReportParams) $(LogOutputParams) -artifactname="$(ArtifactName)"" />
2023-10-14 12:40:57 -04:00
<Property Name= "AssetRegistryCacheRootFolderArg" Value= "-AssetRegistryCacheRootFolder="$(AssetRegistryCache_Folder)"" />
2024-02-07 18:33:10 -05:00
<Property Name= "CombinedEditorArgs" Value= "$(EditorArgs) $(AssetRegistryCacheRootFolderArg) $(ArgIterationsPIE)" />
2023-10-14 12:40:57 -04:00
<Property Name= "RunArgs" Value= "$(Args) -editorargs="$(CombinedEditorArgs)"" />
2021-08-20 10:27:07 -04:00
2021-11-03 19:58:01 -04:00
<!-- Do DDC cleanup outside the editor process, handles Cold cleanup without changing stats -->
2023-05-01 15:48:14 -04:00
<!-- <Commandlet Project="$(ProjectTarget)" Name="DDCCleanup" Arguments="$(Args) $(CommandletArgs)"/> -->
2021-08-20 10:27:07 -04:00
2021-11-03 19:58:01 -04:00
<!-- Run the Gauntlet EditorPerf Tests -->
2023-07-21 21:34:35 -04:00
<Command Name= "RunUnreal" Arguments= "$(AllGauntletArgs) $(ProfileArgs) $(TestFilterArgs) $(RunArgs) -sessionlabel="$(TestName)" -tracefile="$(TraceFilePath)"" />
2021-08-20 10:27:07 -04:00
2021-11-03 19:58:01 -04:00
<!-- Translate the utrace file into csv data -->
2023-05-09 16:27:59 -04:00
<Do If= "$(RunTraceSummary)" >
<Commandlet Project= "$(ProjectTarget)" Name= "SummarizeTrace" Arguments= "-inputfile="$(TraceFilePath)" -testname="$(TestName)" $(SummarizeArgs) $(CommandletArgs)" />
</Do>
2023-06-16 13:20:57 -04:00
2021-11-03 19:58:01 -04:00
<Do If= "'$(TelemetryConfig)' != ''" >
<!-- Publish telemetry to the db -->
2024-01-19 10:19:49 -05:00
<Command Name= "PublishUnrealAutomationTelemetry" Arguments= "-CSVFile="$(TelemetryFilePath)" -project=$(Project) -changelist=$(Change) -branch=$(Branch) -TelemetryConfig=$(TelemetryConfig) $(ExtraTelemetryArgs)" />
2023-06-16 13:20:57 -04:00
</Do>
</Macro>
2023-07-21 21:34:35 -04:00
<!-- The main editor workflows test running macro logic that is expanded with platform and dependency node names -->
<Macro Name= "RunEditorWorkflowsTest" Arguments= "Platform;ProjectName;NodeName" >
<Property Name= "TestName" Value= "Editor.Workflows" />
2023-08-09 13:47:29 -04:00
<Property Name= "TestFilterArgs" Value= "-runtest=$(TestName)" />
2023-07-21 21:34:35 -04:00
<Property Name= "TestOutputDir" Value= "$(AutomationOutputDir)/$(ProjectName)$(Platform)EditorWorkflows" />
2023-08-09 13:47:29 -04:00
<Property Name= "TraceFilePath" Value= "$(TraceDir)/$(TestName)/$(ProjectName)$(Platform)EditorWorkflows.utrace" />
2023-07-21 21:34:35 -04:00
<Property Name= "LogOutputParams" Value= "-logdir="$(TestOutputDir)"" />
<Property Name= "ReportParams" Value= "-WriteTestResultsForHorde -HordeTestDataKey="$(NodeName)$(PreflightSuffix)"" />
<Property Name= "AllGauntletArgs" Value= "-Project=$(ProjectName) -Platform=$(Platform) $(GauntletArgs) $(ReportParams) $(LogOutputParams)" />
<Command Name= "RunUnreal" Arguments= "$(AllGauntletArgs) $(ProfileArgs) $(TestFilterArgs) -sessionlabel="$(TestName)" -tracefile="$(TraceFilePath)"" />
</Macro>
2023-06-16 13:20:57 -04:00
<Macro Name= "UploadTestTraces" Arguments= "Platform;ProjectName" >
<!-- Save all files named for this project in the trace directory -->
<Property Name= "TestOutputDir" Value= "$(AutomationOutputDir)/$(ProjectName)$(Platform)EditorPerf" />
<Copy From= "$(TraceDir)/$(ProjectName)$(Platform)EditorPerf*.*" To= "$(TestOutputDir)" />
2021-08-20 10:27:07 -04:00
</Macro>
2023-07-21 21:34:35 -04:00
<Macro Name= "UploadEditorWorkflowsPerformanceDataAndTraces" Arguments= "Platform;ProjectName" >
<Property Name= "TestOutputDir" Value= "$(AutomationOutputDir)/$(ProjectName)$(Platform)EditorWorkflows" />
2023-08-09 13:47:29 -04:00
<Property Name= "TraceFilePath" Value= "$(TraceDir)/Editor.Workflows/$(ProjectName)$(Platform)EditorWorkflows.utrace" />
<!-- Translate the utrace file into csv data -->
<Commandlet Project= "$(ProjectName)" Name= "SummarizeTraceEditorWorkflows" Arguments= "-inputfile="$(TraceFilePath)" -testname="Editor.Workflows" $(CommandletArgs)" />
2023-08-02 15:38:09 -04:00
<!-- Copy the utrace file and the generated csv performance data to the output directory -->
<Copy From= "$(TraceDir)/Editor.Workflows/*" To= "$(TestOutputDir)/Editor.Workflows" Overwrite= "true" />
<!-- Copy "index.json" that captures the functional results to the output directory -->
<Copy From= "$(RootDir)/Tests/TestReport/index.json" To= "$(TestOutputDir)/Editor.Workflows/index.json" Overwrite= "true" />
2023-07-21 21:34:35 -04:00
</Macro>
<!-- These will be set to the names of all nodes we want to execute based on specified platforms/options -->
2021-08-20 10:27:07 -04:00
<Property Name= "RunGraphNodes" Value= "" />
2023-07-21 21:34:35 -04:00
<Property Name= "RunEditorWorkflowsGraphNodes" Value= "" />
2021-08-20 10:27:07 -04:00
<!-- Mimic of the Runner that retrieves the stashed telemetry file and copies it to the depot location -->
<Macro Name= "BaselineResult" Arguments= "Platform;Project;Phase" >
2021-08-20 15:28:36 -04:00
<Property Name= "TestName" Value= "EditorPerf$(Phase)" />
2021-08-20 10:27:07 -04:00
<Property Name= "IterationName" Value= "$(Project)$(Platform)$(TestName)1" /> <!-- Note the 1! We use Iteration 1 for baselines for now -->
<Property Name= "TelemetryFileName" Value= "$(IterationName)Telemetry.csv" />
<Property Name= "LocalTelemetryFilePath" Value= "$(BaselineDir)/$(TelemetryFileName)" />
<Property Name= "NetworkTelemetryFilePath" Value= "$(BaselineAutomationNetworkOutputDir)/$(TelemetryFileName)" />
<Copy From= "$(NetworkTelemetryFilePath)" To= "$(LocalTelemetryFilePath)" Overwrite= "true" />
<Do If= "!$(IsBuildMachine)" >
<Spawn Exe= "p4" Arguments= "reconcile -ea $(LocalTelemetryFilePath)" />
</Do>
</Macro>
<!-- This will be set to the names of all nodes we want to execute based on specified platforms/options -->
<Property Name= "BaselineGraphNodes" Value= "" />
<!-- ForEach Platform to run, generate graph nodes -->
<ForEach Name= "Platform" Values= "$(Platforms)" >
2024-02-07 18:33:10 -05:00
<!-- ForEach Project that is defined, generate the graph nodes -->
<ForEach Name= "Project" Values= "$(AllProjects)" >
2021-08-20 10:27:07 -04:00
2024-02-02 19:00:11 -05:00
<!-- Each project should be setup by invoking the SetupPerfProject macro which will set up the various variables we'll need for the tests -->
2024-02-08 16:48:45 -05:00
<Property Name= "ProjectCombinedArgs" Value= "$($(Project)__SpecificArgs) $($(Project)__MapArgs) $($(Project)__ExtraNonCopyableArgs) $(AdditionalRuntimeArgs)" />
2024-02-02 19:00:11 -05:00
<Property Name= "ProjectTarget" Value= "$($(Project)__ProjectTarget)" />
<Property Name= "EditorTarget" Value= "$($(Project)__EditorTarget)" />
2022-12-07 18:21:54 -05:00
2021-09-27 19:39:25 -04:00
<!-- Use as base string for directories and key for node names -->
2021-09-16 20:42:29 -04:00
<Property Name= "OutputName" Value= "$(Project)$(Platform)EditorPerf" />
2024-02-07 18:33:10 -05:00
<!-- Compile the Editor. Set up compilation nodes for all projects that have been defined even if we aren't going to test them. This lets the tested projects depend on non - tested ones. -->
<Property Name= "CompileNodeName" Value= "Compile $(Project) $(Platform)" />
2022-12-05 12:34:24 -05:00
<Property Name= "AgentModifier" Value= "" />
<Property Name= "AgentModifier" Value= " $(Project)" If= "!$(SingleAgentCompile)" />
<Agent Name= "Compile Editor Agent $(Platform)$(AgentModifier" Type= "$($(Platform)CompileAgentType)" >
2021-10-04 17:28:23 -04:00
<Node Name= "$(CompileNodeName)" >
2022-06-06 11:28:11 -04:00
<SetVersion Change= "$(Change)" Branch= "$(EscapedBranch)" If= "$(IsBuildMachine)" />
2021-09-27 19:39:25 -04:00
<Compile Target= "ShaderCompileWorker" Platform= "$(Platform)" Configuration= "Development" />
2023-05-01 15:48:14 -04:00
<Compile Target= "CrashReportClientEditor" Platform= "$(Platform)" Project= "$(ProjectTarget)" Configuration= "Shipping" />
<Compile Target= "$(EditorTarget)" Platform= "$(Platform)" Project= "$(ProjectTarget)" Configuration= "Development" Arguments= "$(EditorCompileArgs)" />
2021-09-16 20:02:03 -04:00
</Node>
2021-09-20 16:43:30 -04:00
</Agent>
2022-05-09 20:55:59 -04:00
<Label Category= "$(CompileCategory)" Name= "$(Project) Editor Compile" Requires= "$(CompileNodeName)" />
2024-02-07 18:33:10 -05:00
<!-- Store off the name of the compile node so that we can use look it up by Project name from UseBinariesFrom. -->
<Property Name= "$(Project)__CompileNodeName" Value= "$(CompileNodeName)" />
2021-09-20 16:43:30 -04:00
2024-02-07 18:33:10 -05:00
<!-- If the project will be run, set up the test nodes -->
2024-02-10 12:55:05 -05:00
<Do If= "ContainsItem('$(Projects)', '$(Project)', ';')=='true'" >
2024-02-07 18:33:10 -05:00
<!-- Run the Tests -->
<Property Name= "RunNodeRequires" Value= "$(CompileNodeName)" />
<Property Name= "RunNodeRequires" Value= "$($($(Project)__UseBinariesFrom)__CompileNodeName)" If= "'$($(Project)__UseBinariesFrom)'!=''" />
<Property Name= "RunNodeList" Value= "" />
<!-- Each node in this the nested loops below, they need to depend on predecessors -->
<Property Name= "UploadNodeList" Value= "" />
<Agent Name= "EditorPerf Agent $(Platform) $(Project)" Type= "EditorPerf$(Platform)" >
2021-08-20 10:27:07 -04:00
<ForEach Name= "Phase" Values= "$(Phases)" >
2024-02-07 18:33:10 -05:00
<Do If= "$(EnableBasePhaseTests)" >
<ForEach Name= "Iteration" Values= "$(Iterations)" >
2024-02-10 12:55:05 -05:00
<Property Name= "IterationSuffix" Value= "" />
<Property Name= "IterationSuffix" Value= "$(Iteration)" If= "'$(Iteration)' != '1'" />
<Property Name= "RunNodeName" Value= "Run $(OutputName) $(Phase)$(IterationSuffix)" />
<Node Name= "$(RunNodeName)" Requires= "$(RunNodeRequires);$(RunNodeList)" >
<Expand Name= "RunTest" TestNameSuffix= "NoZenLoader" Platform= "$(Platform)" ProjectName= "$(Project)" ProjectTarget= "$(ProjectTarget)" NodeName= "$(RunNodeName)" Phase= "$(Phase)" Iteration= "$(Iteration)" Args= "$($(Phase)Args)" EditorArgs= "$(ProjectCombinedArgs) $(NoZenLoaderTestArgs)" />
</Node>
<Property Name= "RunNodeList" Value= "$(RunNodeList);$(RunNodeName)" />
2024-02-07 18:33:10 -05:00
</ForEach>
</Do>
2024-02-10 12:55:05 -05:00
<!-- Setup Zen Loader tests for this phase -->
<Do >
2024-02-07 18:33:10 -05:00
<!-- Zen Loader TestRun if enabled -->
2024-02-10 12:55:05 -05:00
<Property Name= "RunNodeZenName" Value= "Run $(OutputName) $(Phase) ZenLoader" />
2024-02-07 18:33:10 -05:00
<Node Name= "$(RunNodeZenName)" Requires= "$(RunNodeRequires);$(RunNodeList)" If= "$(EnableZenLoaderTest)" >
2024-02-10 12:55:05 -05:00
<Expand Name= "RunTest" TestNameSuffix= "ZenLoader" Platform= "$(Platform)" ProjectName= "$(Project)" ProjectTarget= "$(ProjectTarget)" NodeName= "$(RunNodeZenName)" Phase= "$(Phase)" Iteration= "1" Args= "$($(Phase)Args)" EditorArgs= "$(ProjectCombinedArgs) $(ZenLoaderTestArgs)" />
2024-02-07 18:33:10 -05:00
</Node>
<Property Name= "RunNodeList" Value= "$(RunNodeList);$(RunNodeZenName)" If= "$(EnableZenLoaderTest)" />
<!-- Zen Loader Async TestRun if enabled -->
2024-02-10 12:55:05 -05:00
<Property Name= "RunNodeZenAsyncName" Value= "Run $(OutputName) $(Phase) ZenLoader Async" />
<Node Name= "$(RunNodeZenAsyncName)" Requires= "$(RunNodeRequires);$(RunNodeList)" If= "$(EnableZenLoaderAsyncThreadTest)" >
<Expand Name= "RunTest" TestNameSuffix= "ZenLoaderAsync" Platform= "$(Platform)" ProjectName= "$(Project)" ProjectTarget= "$(ProjectTarget)" NodeName= "$(RunNodeZenAsyncName)" Phase= "$(Phase)" Iteration= "1" Args= "$($(Phase)Args)" EditorArgs= "$(ProjectCombinedArgs) $(ZenLoaderAsyncTestArgs)" />
2024-02-07 18:33:10 -05:00
</Node>
2024-02-10 12:55:05 -05:00
<Property Name= "RunNodeList" Value= "$(RunNodeList);$(RunNodeZenAsyncName)" If= "$(EnableZenLoaderAsyncThreadTest)" />
2021-08-20 10:27:07 -04:00
2024-02-07 18:33:10 -05:00
<!-- Zen Store DDC TestRun if enabled -->
2024-02-10 12:55:05 -05:00
<Property Name= "RunNodeZenStoreDDCName" Value= "Run $(OutputName) $(Phase) ZenLoader Store DDC" />
2024-02-07 18:33:10 -05:00
<Node Name= "$(RunNodeZenStoreDDCName)" Requires= "$(RunNodeRequires);$(RunNodeList)" If= "$(EnableZenStoreDDCTest)" >
2024-02-10 12:55:05 -05:00
<Expand Name= "RunTest" TestNameSuffix= "ZenStoreAsyncDDC" Platform= "$(Platform)" ProjectName= "$(Project)" ProjectTarget= "$(ProjectTarget)" NodeName= "$(RunNodeZenStoreDDCName)" Phase= "$(Phase)" Iteration= "1" Args= "$(ZenStoreDDCPhaseArgs)" EditorArgs= "$(ProjectCombinedArgs) $(ZenStoreDDCTestArgs)" />
2024-02-07 18:33:10 -05:00
</Node>
<Property Name= "RunNodeList" Value= "$(RunNodeList);$(RunNodeZenStoreDDCName)" If= "$(EnableZenStoreDDCTest)" />
</Do>
<!-- Warm only test runs e.g LazyLoad -->
<Do If= "'$(Phase)' == 'Warm'" >
<!-- Legacy LazyLoad TestRun if enabled -->
2024-02-10 12:55:05 -05:00
<Property Name= "RunNodeLazyLoadName" Value= "Run $(OutputName) $(Phase) LazyLoad NoZenLoader" />
<Node Name= "$(RunNodeLazyLoadName)" Requires= "$(RunNodeRequires);$(RunNodeList)" If= "$(EnableLazyLoadNoZenLoaderTest)" >
2024-02-09 15:17:04 -05:00
<Expand Name= "RunTest" TestNameSuffix= "NoZenLoader" Platform= "$(Platform)" ProjectName= "$(Project)" ProjectTarget= "$(ProjectTarget)" NodeName= "$(RunNodeLazyLoadName)" Phase= "$(Phase)" Iteration= "1" Args= "$($(Phase)Args)" EditorArgs= "$(ProjectCombinedArgs) $(LazyLoadTestArgs) $(NoZenLoaderTestArgs)" />
2024-02-07 18:33:10 -05:00
</Node>
2024-02-10 12:55:05 -05:00
<Property Name= "RunNodeList" Value= "$(RunNodeList);$(RunNodeLazyLoadName)" If= "$(EnableLazyLoadNoZenLoaderTest)" />
2024-02-07 18:33:10 -05:00
<!-- Zen LazyLoad TestRun if enabled -->
2024-02-10 12:55:05 -05:00
<Property Name= "RunNodeLazyLoadZenName" Value= "Run $(OutputName) $(Phase) LazyLoad ZenLoader" />
<Node Name= "$(RunNodeLazyLoadZenName)" Requires= "$(RunNodeRequires);$(RunNodeList)" If= "$(EnableLazyLoadZenLoaderTest)" >
2024-02-09 15:17:04 -05:00
<Expand Name= "RunTest" TestNameSuffix= "ZenLoader" Platform= "$(Platform)" ProjectName= "$(Project)" ProjectTarget= "$(ProjectTarget)" NodeName= "$(RunNodeLazyLoadZenName)" Phase= "$(Phase)" Iteration= "1" Args= "$($(Phase)Args)" EditorArgs= "$(ProjectCombinedArgs) $(LazyLoadZenTestArgs)" />
2024-02-07 18:33:10 -05:00
</Node>
2024-02-10 12:55:05 -05:00
<Property Name= "RunNodeList" Value= "$(RunNodeList);$(RunNodeLazyLoadZenName)" If= "$(EnableLazyLoadZenLoaderTest)" />
2024-02-07 18:33:10 -05:00
</Do>
</ForEach>
<Property Name= "RunNodeUploadPhaseTraces" Value= "Upload $(OutputName) Traces" />
<Node Name= "$(RunNodeUploadPhaseTraces)" >
<Expand Name= "UploadTestTraces" Platform= "$(Platform)" ProjectName= "$(Project)" />
</Node>
<Property Name= "UploadNodeList" Value= "$(RunNodeUploadPhaseTraces)" />
</Agent>
<Label Category= "$(RunCategory)" Name= "$(Project) Editor Run" Requires= "$(RunNodeRequires);$(RunNodeList);$(UploadNodeList)" UgsBadge= "$(Project) Editor Run" />
<Property Name= "RunGraphNodes" Value= "$(RunGraphNodes);$(RunNodeList);$(UploadNodeList)" />
<!-- Baseline the Results -->
<Property Name= "BaselineNodeName" Value= "Baseline $(OutputName)" />
<Property Name= "BaselineNodeRequires" Value= "" />
<Property Name= "BaselineNodeRequires" Value= "$(RunNodeName)" If= "$(RunAndBaseline)" />
<Property Name= "BaselineGraphNodes" Value= "$(BaselineGraphNodes);$(BaselineNodeName)" />
<Agent Name= "EditorPerf Agent $(Platform) $(Project)" Type= "EditorPerf$(Platform)" >
<Node Name= "$(BaselineNodeName)" Requires= "$(BaselineNodeRequires)" >
<ForEach Name= "Phase" Values= "$(Phases)" >
<Expand Name= "BaselineResult" Platform= "$(Platform)" Project= "$(Project)" Phase= "$(Phase)" />
</ForEach>
</Node>
</Agent>
<Label Category= "$(BaselineCategory)" Name= "$(Project) Perf Baseline" Requires= "$(BaselineNodeName)" />
</Do>
2021-09-16 20:42:29 -04:00
</ForEach> <!-- Projects -->
2021-08-20 10:27:07 -04:00
</ForEach> <!-- Platforms -->
2023-07-21 21:34:35 -04:00
<!-- Generate graph nodes for each platform to run -->
<ForEach Name= "Platform" Values= "$(Platforms)" >
2023-08-09 13:47:29 -04:00
<Property Name= "ProjectName" Value= "EngineTest" />
2023-07-21 21:34:35 -04:00
<!-- Define output name for the EditorWorkflows test -->
2023-08-09 13:47:29 -04:00
<Property Name= "EditorWorkflowsOutputName" Value= "$(ProjectName)$(Platform)EditorWorkflows" />
<Property Name= "CompileNodeName" Value= "Compile $(ProjectName) $(Platform) EditorWorkflows" />
2023-07-21 21:34:35 -04:00
<Property Name= "AgentModifier" Value= "" />
2023-08-09 13:47:29 -04:00
<Property Name= "AgentModifier" Value= " $(ProjectName)" If= "!$(SingleAgentCompile)" />
2023-07-21 21:34:35 -04:00
<!-- Compile Agent configuration -->
<Agent Name= "Compile Editor Agent $(Platform)$(AgentModifier)" Type= "$($(Platform)CompileAgentType)" >
<Node Name= "$(CompileNodeName)" >
<SetVersion Change= "$(Change)" Branch= "$(EscapedBranch)" If= "$(IsBuildMachine)" />
<Compile Target= "ShaderCompileWorker" Platform= "$(Platform)" Configuration= "Development" />
2023-08-09 13:47:29 -04:00
<Compile Target= "CrashReportClientEditor" Platform= "$(Platform)" Project= "$(ProjectName)" Configuration= "Shipping" />
<Compile Target= "$(ProjectName)Editor" Platform= "$(Platform)" Project= "$(ProjectName)" Configuration= "Development" Arguments= "$(EditorCompileArgs)" />
2023-07-21 21:34:35 -04:00
</Node>
</Agent>
2023-08-09 13:47:29 -04:00
<Label Category= "$(CompileCategory)" Name= "$(ProjectName) Editor Compile" Requires= "$(CompileNodeName)" />
2023-07-21 21:34:35 -04:00
<!-- Set up properties for run and upload nodes -->
<Property Name= "RunEditorWorkflowsNodeRequires" Value= "$(CompileNodeName)" />
<Property Name= "UploadEditorWorkflowsNodeList" Value= "" />
<Property Name= "RunEditorWorkflowsNodeList" Value= "" />
<!-- Configure EditorWorkflows Agent -->
2023-08-09 13:47:29 -04:00
<Agent Name= "EditorWorkflows Agent $(Platform) $(ProjectName)" Type= "EditorPerf$(Platform)" >
2023-07-21 21:34:35 -04:00
<Property Name= "RunEditorWorkflowsNodeName" Value= "Run $(EditorWorkflowsOutputName)" />
<Node Name= "$(RunEditorWorkflowsNodeName)" Requires= "$(RunEditorWorkflowsNodeRequires);$(RunEditorWorkflowsNodeList)" >
2023-08-09 13:47:29 -04:00
<Expand Name= "RunEditorWorkflowsTest" Platform= "$(Platform)" ProjectName= "$(ProjectName)" NodeName= "$(RunEditorWorkflowsNodeName)" />
2023-07-21 21:34:35 -04:00
</Node>
<Property Name= "RunEditorWorkflowsNodeList" Value= "$(RunEditorWorkflowsNodeList);$(RunEditorWorkflowsNodeName)" />
<Property Name= "RunNodeUploadTraces" Value= "Upload $(EditorWorkflowsOutputName) Traces" />
<!-- Set up Node for uploading traces -->
<Node Name= "$(RunNodeUploadTraces)" >
2023-08-09 13:47:29 -04:00
<Expand Name= "UploadEditorWorkflowsPerformanceDataAndTraces" Platform= "$(Platform)" ProjectName= "$(ProjectName)" />
2023-07-21 21:34:35 -04:00
</Node>
<!-- Update UploadEditorWorkflowsNodeList -->
<Property Name= "UploadEditorWorkflowsNodeList" Value= "$(UploadEditorWorkflowsNodeList);$(RunNodeUploadTraces)" />
</Agent>
2023-08-09 13:47:29 -04:00
<Label Category= "$(RunCategory)" Name= "$(ProjectName) Editor Run" Requires= "$(RunEditorWorkflowsNodeRequires);$(RunEditorWorkflowsNodeList);$(UploadEditorWorkflowsNodeList)" UgsBadge= "$(ProjectName) Editor Run" />
2023-07-21 21:34:35 -04:00
<Property Name= "RunEditorWorkflowsGraphNodes" Value= "$(RunEditorWorkflowsGraphNodes);$(RunEditorWorkflowsNodeList);$(UploadEditorWorkflowsNodeList)" />
</ForEach>
<!-- End ForEach Platforms -->
<!-- These Nodes run the Editor Workflows test and gather profile data -->
<Aggregate Name= "Run EditorWorkflows Tests" Requires= "$(RunEditorWorkflowsGraphNodes)" />
2021-08-20 10:27:07 -04:00
<!-- These Nodes run the Editor and gather profile data -->
2021-08-20 15:28:36 -04:00
<Aggregate Name= "Run EditorPerf Tests" Requires= "$(RunGraphNodes)" />
2021-08-20 10:27:07 -04:00
<!-- These Nodes copies the CSV telemetry files to special location in the depot, thus making them the "baselines" -->
2021-08-20 15:28:36 -04:00
<Aggregate Name= "Baseline EditorPerf Results" Requires= "$(BaselineGraphNodes)" />
2021-08-20 10:27:07 -04:00
<!-- This Node submits the baseline CSV files to Perforce -->
<!--
<Agent Name= "Submission Agent Win64" Type= "Win64" >
<Node Name= "Submit Baseline To Perforce" Requires= "$(BaselineGraphNodes)" >
2021-08-20 15:28:36 -04:00
<Submit Description= "[CL $(Change)] Updated EditorPerf baselines" Files= "$(BaselineFiles)" />
2021-08-20 10:27:07 -04:00
</Node>
</Agent>
-->
</BuildGraph>