You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
Preliminary change for bless support. These arguments are general platform toggles now. #rb none [CL 16337281 by geoff evans in ue5-main branch]
174 lines
11 KiB
XML
174 lines
11 KiB
XML
<?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"/>
|
|
<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)"/>
|
|
|
|
<!-- Projects setup-->
|
|
<Option Name="ProjectNames" DefaultValue="false" Restrict=".+" Description="The Projects to test"/>
|
|
<Error Message="No project names specified" If="'$(ProjectNames)' == 'false'"/>
|
|
<Option Name="UgsProject" DefaultValue="" Description="The relative path to the project"/>
|
|
<Option Name="UgsBadge" DefaultValue="" Description="The badge name to use with labels"/>
|
|
|
|
<!-- Platform Options -->
|
|
<Option Name="Win64" DefaultValue="false" Description="Enable Win64 Platform"/>
|
|
<Option Name="MacOS" DefaultValue="false" Description="Enable MacOS Platform"/>
|
|
<Error Message="No platforms specified" If="!$(Win64) And !$(MacOS)"/>
|
|
|
|
<!-- Build Options -->
|
|
<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>
|
|
<Property Name="EditorCompileArgs" Value="-BuildPlugin=$(ExtraPluginsPlusDelims)"/>
|
|
|
|
<!-- Automation uses its own network output directory -->
|
|
<Property Name="AutomationNodes" Value="" />
|
|
<Property Name="AutomationLocalOutputDir" Value="$(RootDir)/LocalBuilds/Reports"/>
|
|
|
|
<!-- Arguments for tracing -->
|
|
<Option Name="ColdPass" DefaultValue="true" Description="Perform cold workspace loading profiles"/>
|
|
<Option Name="ColdArgs" DefaultValue="-ddc=Cold" Description="Arguments to unreal for the cold pass"/>
|
|
<Option Name="WarmPass" DefaultValue="true" Description="Perform warm (incremental) workspace loading profiles"/>
|
|
<Option Name="WarmArgs" DefaultValue="-ddc=Warm" Description="Arguments to unreal for the warm pass"/>
|
|
<Property Name="TraceDir" Value="$(RootDir)/Engine/Programs/UnrealInsights/Saved/TraceSessions"/>
|
|
|
|
<!-- Gauntlet arguments for all runs -->
|
|
<Property Name="GauntletArgs" Value="-build=editor -UseEditor -verbose -report -tempdir="$(RootDir)/Tests""/>
|
|
<Property Name="GauntletArgs" Value="$(GauntletArgs) -branch=$(Branch) -ECBranch="$(Branch)" -ECChangelist="$(Change)""/>
|
|
<Property Name="GauntletArgs" Value="$(GauntletArgs) -maxduration=14400"/>
|
|
|
|
<!-- Gauntlet arguments for profile runs -->
|
|
<Property Name="ProfileArgs" Value="-test=EditorTests -testfilter=Group:Iteration -tracefiletrunc"/>
|
|
<Property Name="ProfileArgs" Value="$(ProfileArgs) -EnablePlugins=$(ExtraPluginsCommaDelims)" If="'$(ExtraPluginsCommaDelims)' != ''"/>
|
|
<Property Name="ProfileArgs" Value="$(ProfileArgs) -TreatLogWarningsAsTestErrors=false -TreatLogErrorsAsTestErrors=false"/>
|
|
<Property Name="ProfileArgs" Value="$(ProfileArgs) -GameInstanceLostTimerSeconds=3600"/>
|
|
<Property Name="ProfileArgs" Value="$(ProfileArgs) -NoShaderDistrib"/>
|
|
|
|
<!-- Gauntlet arguments for summarize commandlet runs -->
|
|
<Property Name="SummarizeArgs" Value="-statsfile="$(RootDir)/Engine/Build/IterationProfileStats.csv""/>
|
|
|
|
<!-- The main test running macro logic that is expanded with platform and dependency node names -->
|
|
<Macro Name="RunTest" Arguments="OutputName;PlatformName;ProjectName;NodeName;NodeRequires;Phase;Args">
|
|
<Property Name="TestName" Value="IterationProfile$(Phase)"/>
|
|
<Property Name="TraceFile" Value="$(TraceDir)/$(ProjectName)$(PlatformName)$(TestName).utrace"/>
|
|
<Property Name="TelemetryFile" Value="$(TraceDir)/$(ProjectName)$(PlatformName)$(TestName)Telemetry.csv"/>
|
|
<Property Name="ReportExportPath" Value="$(AutomationOutputDir)/$(OutputName)"/>
|
|
<Property Name="ReportParams" Value="-ReportExportPath="$(ReportExportPath)""/>
|
|
<Do If="$(IsBuildMachine)">
|
|
<Property Name="ReportExportURL" Value="$(AutomationReportBaseUrl)/$(OutputName)/index.html"/>
|
|
<Property Name="ReportParams" Value="$(ReportParams) -ReportURL="$(ReportExportURL)" -WriteTestResultsForHorde -HordeTestDataKey="$(NodeName) $(Phase)$(PreflightSuffix)""/>
|
|
</Do>
|
|
<Property Name="LogOutputParams" Value="-logdir="$(AutomationOutputDir)/$(OutputName)""/>
|
|
<Property Name="AllGauntletArgs" Value="-platform=$(PlatformName) -project=$(ProjectName) $(GauntletArgs) $(ReportParams) $(LogOutputParams) -artifactname="$(Phase)""/>
|
|
<Command Name="RunUnreal" Arguments="$(AllGauntletArgs) $(ProfileArgs) $(Args) -tracefile="$(TraceFile)""/>
|
|
<Commandlet Name="SummarizeTrace" Arguments="-NoEnginePlugins -inputfile="$(TraceFile)" -testname="$(TestName)" $(SummarizeArgs)"/>
|
|
<Do If="$(IsBuildMachine)">
|
|
<!-- Files copied to this folder are automatically uploaded to Horde as artifacts -->
|
|
<Copy From="$(TraceDir)/$(ProjectName)$(TestName)*.*" To="$(RootDir)/Engine/Programs/AutomationTool/Saved/Logs"/>
|
|
<Command Name="PublishUnrealAutomationTelemetry" Arguments="-CSVFile="$(TelemetryFile)" -project=$(ProjectName) -changelist=$(Change) -branch=$(Branch)"/>
|
|
</Do>
|
|
</Macro>
|
|
|
|
<!-- This will be set to the names of all nodes we want to execute based on specified platforms/options -->
|
|
<Property Name="GraphNodes" Value="" />
|
|
|
|
<!-- Windows -->
|
|
<Agent Name="Prerequisites Agent Win64" Type="Win64">
|
|
<Node Name="Compile Prerequisites Win64Host">
|
|
<Compile Target="UnrealHeaderTool" Platform="Win64" Configuration="Development"/>
|
|
<Compile Target="ShaderCompileWorker" Platform="Win64" Configuration="Development"/>
|
|
<Compile Target="CrashReportClient" Platform="Win64" Configuration="Shipping"/>
|
|
<Compile Target="CrashReportClientEditor" Platform="Win64" Configuration="Shipping"/>
|
|
</Node>
|
|
</Agent>
|
|
|
|
<!-- macOS -->
|
|
<Agent Name="Prerequisites Agent Mac" Type="TestMac">
|
|
<Node Name="Compile Prerequisites Mac">
|
|
<Compile Target="UnrealHeaderTool" Platform="Mac" Configuration="Development"/>
|
|
<Compile Target="ShaderCompileWorker" Platform="Mac" Configuration="Development"/>
|
|
<Compile Target="CrashReportClient" Platform="Mac" Configuration="Shipping"/>
|
|
<Compile Target="CrashReportClientEditor" Platform="Mac" Configuration="Shipping"/>
|
|
</Node>
|
|
</Agent>
|
|
|
|
<!-- ForEach Project to run, generate the graph nodes -->
|
|
<ForEach Name="ProjectName" Values="$(ProjectNames)">
|
|
|
|
<!-- Automation uses its own network output directory -->
|
|
<Property Name="AutomationNetworkOutputDir" Value="P:/Builds/Automation/Reports/$(EscapedBranch)/$(ProjectName)/$(BuildName)"/>
|
|
<Property Name="AutomationNetworkOutputDir" Value="/Volumes/Builds/Automation/Reports/$(EscapedBranch)/$(ProjectName)/$(BuildName)" If="'$(HostPlatform)' != 'Win64'"/>
|
|
<Property Name="AutomationReportBaseUrl" Value="http://automation.epicgames.net/reports/$(EscapedBranch)/$(ProjectName)/$(BuildName)"/>
|
|
<Property Name="AutomationOutputDir" Value="$(AutomationLocalOutputDir)"/>
|
|
<Property Name="AutomationOutputDir" Value="$(AutomationNetworkOutputDir)" If="$(IsBuildMachine)"/>
|
|
|
|
<!-- Windows -->
|
|
<Agent Name="Prerequisites Agent Win64" Type="Win64">
|
|
<Node Name="Compile $(ProjectName) Editor Win64" Requires="Compile Prerequisites Win64Host">
|
|
<Compile Target="$(ProjectName)Editor" Platform="Win64" Configuration="Development" Arguments="$(EditorCompileArgs)"/>
|
|
</Node>
|
|
</Agent>
|
|
<Agent Name="Automated Test Agent $(ProjectName) Win64" Type="TestWin64">
|
|
<Property Name="PlatformName" Value="Win64" />
|
|
<Property Name="OutputName" Value="IterationProfile $(PlatformName)" />
|
|
<Property Name="NodeName" Value="Run $(ProjectName) $(OutputName)" />
|
|
<Property Name="NodeRequires" Value="Compile Prerequisites $(PlatformName)Host;Compile $(ProjectName) Editor $(PlatformName)" />
|
|
<Do If="$(Win64)">
|
|
<Node Name="$(NodeName)" Requires="$(NodeRequires)">
|
|
<Do If="$(ColdPass)">
|
|
<Expand Name="RunTest" OutputName="$(OutputName)" PlatformName="$(PlatformName)" ProjectName="$(ProjectName)" NodeName="$(NodeName)" NodeRequires="$(NodeRequires)" Phase="Cold" Args="$(ColdArgs)"/>
|
|
</Do>
|
|
<Do If="$(WarmPass)">
|
|
<Expand Name="RunTest" OutputName="$(OutputName)" PlatformName="$(PlatformName)" ProjectName="$(ProjectName)" NodeName="$(NodeName)" NodeRequires="$(NodeRequires)" Phase="Warm" Args="$(WarmArgs)"/>
|
|
</Do>
|
|
</Node>
|
|
<Property Name="GraphNodes" Value="$(GraphNodes);$(NodeName)"/>
|
|
</Do>
|
|
</Agent>
|
|
|
|
<!-- macOS -->
|
|
<Agent Name="Prerequisites Agent Mac" Type="TestMac">
|
|
<Node Name="Compile $(ProjectName) Editor Mac" Requires="Compile Prerequisites Mac">
|
|
<Compile Target="$(ProjectName)Editor" Platform="Mac" Configuration="Development" Arguments="$(EditorCompileArgs)"/>
|
|
</Node>
|
|
</Agent>
|
|
<Agent Name="Automated Test Agent $(ProjectName) Mac" Type="TestMac">
|
|
<Property Name="PlatformName" Value="Mac" />
|
|
<Property Name="OutputName" Value="IterationProfile $(PlatformName)" />
|
|
<Property Name="NodeName" Value="Run $(ProjectName) $(OutputName)" />
|
|
<Property Name="NodeRequires" Value="Compile Prerequisites $(PlatformName);Compile $(ProjectName) Editor $(PlatformName)" />
|
|
<Do If="$(MacOS)">
|
|
<Node Name="$(NodeName)" Requires="$(NodeRequires)">
|
|
<Do If="$(ColdPass)">
|
|
<Expand Name="RunTest" OutputName="$(OutputName)" PlatformName="$(PlatformName)" ProjectName="$(ProjectName)" NodeName="$(NodeName)" NodeRequires="$(NodeRequires)" Phase="Cold" Args="$(ColdArgs)"/>
|
|
</Do>
|
|
<Do If="$(WarmPass)">
|
|
<Expand Name="RunTest" OutputName="$(OutputName)" PlatformName="$(PlatformName)" ProjectName="$(ProjectName)" NodeName="$(NodeName)" NodeRequires="$(NodeRequires)" Phase="Warm" Args="$(WarmArgs)"/>
|
|
</Do>
|
|
</Node>
|
|
<Property Name="GraphNodes" Value="$(GraphNodes);$(NodeName)"/>
|
|
</Do>
|
|
</Agent>
|
|
|
|
<!-- Graph nodes that really tie the room together -->
|
|
<Label Category="Tests" Name="$(ProjectName) Iteration Profile Win64" Requires="Prerequisites Agent Win64;Automated Test Agent $(ProjectName) Win64" UgsProject="$(UgsProject)" UgsBadge="$(UgsBadge)"/>
|
|
<Label Category="Tests" Name="$(ProjectName) Iteration Profile Mac" Requires="Prerequisites Agent Mac;Automated Test Agent $(ProjectName) Mac" UgsProject="$(UgsProject)" UgsBadge="$(UgsBadge)"/>
|
|
|
|
</ForEach>
|
|
|
|
<Aggregate Name="Run Iteration Profile Tests" Requires="$(GraphNodes)"/>
|
|
|
|
</BuildGraph>
|