Skip to content

Instantly share code, notes, and snippets.

@DannyGoodayle
Forked from regner/BuildProject.xml
Last active July 18, 2023 11:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save DannyGoodayle/fc68f3a0acecb982cfe692fb22b7564e to your computer and use it in GitHub Desktop.
Save DannyGoodayle/fc68f3a0acecb982cfe692fb22b7564e to your computer and use it in GitHub Desktop.
A sample BuildGraph script for building, cooking, and packaging an Unreal project.
{
"name": "//ue/Main",
"ClusterName": "Default",
"NotificationChannel": "#ue",
"NotificationChannelFilter": "Failure",
"TriageChannel": "#ue-triage",
"DefaultPreflight": {
"TemplateID": "pre-flight"
},
"Tabs": [
{
"Title": "Incremental",
"Type": "Jobs",
"ShowNames": true,
"Templates": [
"incremental"
],
"Columns": [
{
"Heading": "Compile",
"Category": "Compile",
"RelativeWidth": 1
},
{
"Heading": "Cook",
"Category": "Cook",
"RelativeWidth": 1
},
{
"Heading": "Other",
"Category": "Other",
"RelativeWidth": 1
}
]
},
{
"Title": "Pre-Flights",
"Type": "Jobs",
"ShowNames": true,
"Templates": [
"pre-flight"
],
"Columns": [
{
"Heading": "Compile",
"Category": "Compile",
"RelativeWidth": 1
},
{
"Heading": "Cook",
"Category": "Cook",
"RelativeWidth": 1
},
{
"Heading": "Package",
"Category": "Package",
"RelativeWidth": 1
},
{
"Heading": "Other",
"Category": "Other",
"RelativeWidth": 1
}
]
},
{
"Title": "Full Builds",
"Type": "Jobs",
"ShowNames": true,
"Templates": [
"on-demand-full-build",
"non-unity-compile",
"nightly-full-build",
"static-analysis"
],
"Columns": [
{
"Heading": "Compile",
"Category": "Compile",
"RelativeWidth": 1
},
{
"Heading": "Cook",
"Category": "Cook",
"RelativeWidth": 1
},
{
"Heading": "Package",
"Category": "Package",
"RelativeWidth": 1
},
{
"Heading": "Other",
"Category": "Other",
"RelativeWidth": 1
}
]
},
{
"Title": "Utilities",
"Type": "Jobs",
"ShowNames": true,
"Templates": [
"utility-age-symstore",
"utility-cleanup",
"utility-ddc-fill",
"utility-hlod-generation",
"utility-navmesh-generation",
"utility-resave-dirty-packages",
"utility-resave-redirectors",
"utility-ugs-binaries"
],
"Columns": [
{
"Heading": "Other",
"Category": "Other",
"RelativeWidth": 1
}
]
}
],
"AgentTypes": {
"IncrementalCompileWin64": {
"Pool": "ue5-compile",
"Workspace": "Incremental",
"TempStorageDir": "\\\\justanas\\root\\HordeStorage\\",
"Environment": {
"UE-SharedDataCachePath": "\\\\justanas\\root\\ue_DDC"
}
},
"CompileWin64": {
"Pool": "ue5-compile",
"Workspace": "Full",
"TempStorageDir": "\\\\justanas\\root\\HordeStorage\\",
"Environment": {
"UE-SharedDataCachePath": "\\\\justanas\\root\\ue_DDC"
}
},
"IncrementalCookWin64": {
"Pool": "ue5-cook",
"Workspace": "Incremental",
"TempStorageDir": "\\\\justanas\\root\\HordeStorage\\",
"Environment": {
"UE-SharedDataCachePath": "\\\\justanas\\root\\ue_DDC"
}
},
"CookWin64": {
"Pool": "ue5-cook",
"Workspace": "Full",
"TempStorageDir": "\\\\justanas\\root\\HordeStorage\\",
"Environment": {
"UE-SharedDataCachePath": "\\\\justanas\\root\\ue_DDC"
}
},
"TestWin64": {
"Pool": "ue5-test",
"Workspace": "Incremental",
"TempStorageDir": "\\\\justanas\\root\\HordeStorage\\",
"Environment": {
"UE-SharedDataCachePath": "\\\\justanas\\root\\ue_DDC\\"
}
},
"Utility": {
"Pool": "utility",
"Workspace": "Utility"
}
},
"WorkspaceTypes": {
"Incremental": {
"Stream": "//ue/main",
"Identifier": "UE5MainInc",
"Incremental": true,
"UseAutoSdk": true
},
"Full": {
"Stream": "//ue/main",
"Identifier": "UE5MainFull",
"Incremental": false,
"UseAutoSdk": true
},
"Utility": {
"Stream": "//ue/main",
"Identifier": "UE5MainUtil",
"Incremental": false,
"UseAutoSdk": true
}
},
"Templates": [
{
"ID": "incremental",
"Name": "Incremental",
"AllowPreflights": false,
"InitialAgentType": "Utility",
"ShowUgsBadges": true,
"Arguments": [
"-Script=PROJECTNAME/Build/Graph/Project.xml",
"-Target=BuildProject",
"-set:UseIncrementalAgents=true",
"-set:UGSBadgesPerStep=true",
"-set:BuildWin64Client=true",
"-set:BuildWin64Server=true",
"-set:BuildDevelopmentConfiguration=true",
"-set:BuildShippingConfiguration=true",
"-set:BuildTestConfiguration=true",
"-set:EnableCooking=true",
"-set:EditorAutomationTestsCIEnable=true",
"-set:TestCompileAllBlueprints=false"
],
"Schedule": {
"Enabled": true,
"Patterns": [
{
"Interval": 1
}
]
},
"Parameters": []
},
{
"ID": "pre-flight",
"Name": "Pre-flight Build",
"AllowPreflights": true,
"Priority": "High",
"InitialAgentType": "Utility",
"Arguments": [
"-Script=PROJECTNAME/Build/Graph/Project.xml",
"-Target=BuildProject",
"-set:UseIncrementalAgents=true"
],
"Parameters": [
{
"Type": "List",
"Label": "Clients",
"Style": "MultiList",
"Items": [
{
"Text": "Windows",
"ArgumentIfEnabled": "-set:BuildWin64Client=true",
"ArgumentIfDisabled": "-set:BuildWin64Client=false",
"Default": true
},
{
"Text": "Playstation 5",
"ArgumentIfEnabled": "-set:BuildPS5Client=true",
"ArgumentIfDisabled": "-set:BuildPS5Client=false",
"Default": false
},
{
"Text": "Xbox Series X",
"ArgumentIfEnabled": "-set:BuildXSXClient=true",
"ArgumentIfDisabled": "-set:BuildXSXClient=false",
"Default": false
}
]
},
{
"Type": "List",
"Label": "Servers",
"Style": "MultiList",
"Items": [
{
"Text": "Windows",
"ArgumentIfEnabled": "-set:BuildWin64Server=true",
"ArgumentIfDisabled": "-set:BuildWin64Server=false",
"Default": true
},
{
"Text": "Linux",
"ArgumentIfEnabled": "-set:BuildLinuxServer=true",
"ArgumentIfDisabled": "-set:BuildLinuxServer=false",
"Default": true
}
]
},
{
"Type": "List",
"Label": "Configurations",
"Style": "MultiList",
"Items": [
{
"Text": "Debug",
"ArgumentIfEnabled": "-set:BuildDebugConfiguration=true",
"ArgumentIfDisabled": "-set:BuildDebugConfiguration=false",
"Default": false
},
{
"Text": "Development",
"ArgumentIfEnabled": "-set:BuildDevelopmentConfiguration=true",
"ArgumentIfDisabled": "-set:BuildDevelopmentConfiguration=false",
"Default": true
},
{
"Text": "Testing",
"ArgumentIfEnabled": "-set:BuildTestConfiguration=true",
"ArgumentIfDisabled": "-set:BuildTestConfiguration=false",
"Default": false
},
{
"Text": "Shipping",
"ArgumentIfEnabled": "-set:BuildShippingConfiguration=true",
"ArgumentIfDisabled": "-set:BuildShippingConfiguration=false",
"Default": false
}
]
},
{
"Type": "List",
"Label": "Tests",
"Style": "MultiList",
"Items": [
{
"Text": "Compile All Blueprints",
"ArgumentIfEnabled": "-set:TestCompileAllBlueprints=true",
"ArgumentIfDisabled": "-set:TestCompileAllBlueprints=false",
"Default": false
}
]
},
{
"Type": "List",
"Label": "Editor Automation Tests",
"Style": "MultiList",
"Items": [
{
"Text": "Preflight Test Group",
"ArgumentIfEnabled": "-set:EditorAutomationTestsPreflightEnable=true",
"Default": true
},
{
"Text": "CI Test Group",
"ArgumentIfEnabled": "-set:EditorAutomationTestsCIEnable=true",
"Default": false
},
{
"Text": "Nightly Test Group",
"ArgumentIfEnabled": "-set:EditorAutomationTestsNightlyEnable=true",
"Default": false
}
]
},
{
"Type": "Bool",
"Label": "Cook content",
"ArgumentIfEnabled": "-set:EnableCooking=true",
"ArgumentIfDisabled": "-set:EnableCooking=false",
"Default": true
},
{
"Type": "Bool",
"Label": "Package build",
"ArgumentIfEnabled": "-set:EnablePackaging=true",
"ArgumentIfDisabled": "-set:EnablePackaging=false",
"Default": false
},
{
"Type": "Bool",
"Label": "Non-unity Compile",
"ArgumentIfEnabled": "-set:EnableNonUnityCompile=true",
"ArgumentIfDisabled": "-set:EnableNonUnityCompile=false",
"Default": false
}
]
},
{
"ID": "nightly-full-build",
"Name": "Nightly Full Build",
"AllowPreflights": false,
"InitialAgentType": "Utility",
"ShowUgsBadges": true,
"Arguments": [
"-Script=PROJECTNAME/Build/Graph/Project.xml",
"-Target=BuildProject",
"-set:SaveNetworkBuild=true",
"-set:UGSBadgesOverall=true",
"-set:UGSBadgesOverallName=Nightly Build",
"-set:BuildWin64Client=true",
"-set:BuildPS5Client=true",
"-set:BuildXSXClient=true",
"-set:BuildWin64Server=true",
"-set:BuildLinuxServer=true",
"-set:BuildDevelopmentConfiguration=true",
"-set:BuildShippingConfiguration=true",
"-set:BuildTestConfiguration=true",
"-set:EnablePackaging=true",
"-set:EditorAutomationTestsNightlyEnable=true",
"-set:TestCompileAllBlueprints=false"
],
"Schedule": {
"Enabled": true,
"MaxActive": 1,
"Patterns": [
{
"minTime": 1200
}
]
},
"Parameters": []
},
{
"ID": "non-unity-compile",
"Name": "Non-Unity Compile",
"AllowPreflights": false,
"InitialAgentType": "Utility",
"ShowUgsBadges": true,
"Arguments": [
"-Script=PROJECTNAME/Build/Graph/Project.xml",
"-Target=BuildProject",
"-set:UGSBadgesOverall=true",
"-set:UGSBadgesOverallName=Non-Unity Build",
"-set:EnableNonUnityCompile=true"
],
"Schedule": {
"Enabled": true,
"MaxActive": 1,
"Patterns": [
{
"MinTime": 1380
}
]
},
"Parameters": [
{
"Type": "Bool",
"Label": "Editor",
"ArgumentIfEnabled": "-set:BuildEditor=true",
"ArgumentIfDisabled": "-set:BuildEditor=false",
"Default": true
},
{
"Type": "List",
"Label": "Clients",
"Style": "MultiList",
"Items": [
{
"Text": "Windows",
"ArgumentIfEnabled": "-set:BuildWin64Client=true",
"ArgumentIfDisabled": "-set:BuildWin64Client=false",
"Default": true
},
{
"Text": "Playstation 5",
"ArgumentIfEnabled": "-set:BuildPS5Client=true",
"ArgumentIfDisabled": "-set:BuildPS5Client=false",
"Default": true
},
{
"Text": "Xbox Series X",
"ArgumentIfEnabled": "-set:BuildXSXClient=true",
"ArgumentIfDisabled": "-set:BuildXSXClient=false",
"Default": true
}
]
},
{
"Type": "List",
"Label": "Servers",
"Style": "MultiList",
"Items": [
{
"Text": "Windows",
"ArgumentIfEnabled": "-set:BuildWin64Server=true",
"ArgumentIfDisabled": "-set:BuildWin64Server=false",
"Default": true
},
{
"Text": "Linux",
"ArgumentIfEnabled": "-set:BuildLinuxServer=true",
"ArgumentIfDisabled": "-set:BuildLinuxServer=false",
"Default": true
}
]
},
{
"Type": "List",
"Label": "Configurations",
"Style": "MultiList",
"Items": [
{
"Text": "Debug",
"ArgumentIfEnabled": "-set:BuildDebugConfiguration=true",
"ArgumentIfDisabled": "-set:BuildDebugConfiguration=false",
"Default": false
},
{
"Text": "Development",
"ArgumentIfEnabled": "-set:BuildDevelopmentConfiguration=true",
"ArgumentIfDisabled": "-set:BuildDevelopmentConfiguration=false",
"Default": true
},
{
"Text": "Testing",
"ArgumentIfEnabled": "-set:BuildTestConfiguration=true",
"ArgumentIfDisabled": "-set:BuildTestConfiguration=false",
"Default": false
},
{
"Text": "Shipping",
"ArgumentIfEnabled": "-set:BuildShippingConfiguration=true",
"ArgumentIfDisabled": "-set:BuildShippingConfiguration=false",
"Default": false
}
]
}
]
},
{
"ID": "static-analysis",
"Name": "Static Analysis",
"AllowPreflights": false,
"InitialAgentType": "Utility",
"ShowUgsBadges": false,
"Arguments": [
"-Script=PROJECTNAME/Build/Graph/Project.xml",
"-Target=BuildProject",
"-set:EnableStaticAnalyzer=true",
"-set:BuildDevelopmentConfiguration=true"
],
"Schedule": {
"Enabled": false,
"MaxActive": 1,
"Patterns": [
{
"MinTime": 1200
}
]
},
"Parameters": [
{
"Type": "Bool",
"Label": "Editor",
"ArgumentIfEnabled": "-set:BuildEditor=true",
"ArgumentIfDisabled": "-set:BuildEditor=false",
"Default": true
},
{
"Type": "Bool",
"Label": "Windows Client",
"ArgumentIfEnabled": "-set:BuildWin64Client=true",
"ArgumentIfDisabled": "-set:BuildWin64Client=false",
"Default": true
},
{
"Type": "Bool",
"Label": "Windows Server",
"ArgumentIfEnabled": "-set:BuildWin64Server=true",
"ArgumentIfDisabled": "-set:BuildWin64Server=false",
"Default": true
}
]
},
{
"ID": "on-demand-full-build",
"Name": "On-Demand Full Build",
"AllowPreflights": false,
"InitialAgentType": "Utility",
"Priority": "high",
"Arguments": [
"-Script=PROJECTNAME/Build/Graph/Project.xml",
"-Target=BuildProject",
"-set:SaveNetworkBuild=true"
],
"Parameters": [
{
"Type": "List",
"Label": "Clients",
"Style": "MultiList",
"Items": [
{
"Text": "Windows",
"ArgumentIfEnabled": "-set:BuildWin64Client=true",
"ArgumentIfDisabled": "-set:BuildWin64Client=false",
"Default": true
},
{
"Text": "Playstation 5",
"ArgumentIfEnabled": "-set:BuildPS5Client=true",
"ArgumentIfDisabled": "-set:BuildPS5Client=false",
"Default": false
},
{
"Text": "Xbox Series X",
"ArgumentIfEnabled": "-set:BuildXSXClient=true",
"ArgumentIfDisabled": "-set:BuildXSXClient=false",
"Default": false
}
]
},
{
"Type": "List",
"Label": "Servers",
"Style": "MultiList",
"Items": [
{
"Text": "Windows",
"ArgumentIfEnabled": "-set:BuildWin64Server=true",
"ArgumentIfDisabled": "-set:BuildWin64Server=false",
"Default": true
},
{
"Text": "Linux",
"ArgumentIfEnabled": "-set:BuildLinuxServer=true",
"ArgumentIfDisabled": "-set:BuildLinuxServer=false",
"Default": true
}
]
},
{
"Type": "List",
"Label": "Configurations",
"Style": "MultiList",
"Items": [
{
"Text": "Debug",
"ArgumentIfEnabled": "-set:BuildDebugConfiguration=true",
"ArgumentIfDisabled": "-set:BuildDebugConfiguration=false",
"Default": false
},
{
"Text": "Development",
"ArgumentIfEnabled": "-set:BuildDevelopmentConfiguration=true",
"ArgumentIfDisabled": "-set:BuildDevelopmentConfiguration=false",
"Default": true
},
{
"Text": "Testing",
"ArgumentIfEnabled": "-set:BuildTestConfiguration=true",
"ArgumentIfDisabled": "-set:BuildTestConfiguration=false",
"Default": true
},
{
"Text": "Shipping",
"ArgumentIfEnabled": "-set:BuildShippingConfiguration=true",
"ArgumentIfDisabled": "-set:BuildShippingConfiguration=false",
"Default": true
}
]
},
{
"Type": "Bool",
"Label": "Cook",
"ArgumentIfEnabled": "-set:EnableCooking=true",
"ArgumentIfDisabled": "-set:EnableCooking=false",
"Default": true
},
{
"Type": "Bool",
"Label": "Package",
"ArgumentIfEnabled": "-set:EnablePackaging=true",
"ArgumentIfDisabled": "-set:EnablePackaging=false",
"Default": true
}
]
},
{
"ID": "utility-cleanup",
"Name": "Cleanup",
"AllowPreflights": false,
"InitialAgentType": "Utility",
"Arguments": [
"-Script=PROJECTNAME/Build/Graph/Project.xml",
"-Target=UtilityCleanup"
],
"Schedule": {
"Enabled": true,
"MaxActive": 1,
"Patterns": [
{
"MinTime": 1320
}
]
},
"Parameters": [
{
"Type": "Bool",
"Label": "Purge scratch build files",
"ArgumentIfEnabled": "-set:ScratchBuildsPurge=true",
"ArgumentIfDisabled": "-set:ScratchBuildsPurge=false",
"Default": true
},
{
"Type": "Bool",
"Label": "Purge saved build files",
"ArgumentIfEnabled": "-set:SavedBuildsPurge=true",
"ArgumentIfDisabled": "-set:SavedBuildsPurge=false",
"Default": true
},
{
"Type": "Bool",
"Label": "Purge intermediate build files",
"ArgumentIfEnabled": "-set:IntermediateBuildsPurge=true",
"ArgumentIfDisabled": "-set:IntermediateBuildsPurge=false",
"Default": true
}
]
},
{
"ID": "utility-ddc-fill",
"Name": "DDC Fill",
"AllowPreflights": false,
"InitialAgentType": "Utility",
"Arguments": [
"-Script=PROJECTNAME/Build/Graph/Project.xml",
"-Target=BuildProject",
"-set:FillDDC=true"
],
"Schedule": {
"Enabled": true,
"MaxActive": 1,
"Patterns": [
{
"MinTime": 1320
}
]
},
"Parameters": []
},
{
"ID": "utility-hlod-generation",
"Name": "HLOD Generation",
"AllowPreflights": false,
"InitialAgentType": "Utility",
"Arguments": [
"-Script=PROJECTNAME/Build/Graph/Project.xml",
"-Target=BuildProject",
"-set:UseIncrementalAgents=true",
"-set:GenerateHLODs=true",
"-set:NavMeshMapNames=",
"-set:BuilderCount="
],
"Schedule": {
"Enabled": false,
"Patterns": [
{
"MinTime": 1320
}
]
},
"Parameters": [ ]
},
{
"ID": "utility-navmesh-generation",
"Name": "NavMesh Generation",
"AllowPreflights": false,
"InitialAgentType": "Utility",
"Arguments": [
"-Script=PROJECTNAME/Build/Graph/Project.xml",
"-Target=BuildProject",
"-set:UseIncrementalAgents=true",
"-set:NavMeshMapNames="
],
"Schedule": {
"Enabled": false,
"MaxActive": 1,
"Patterns": [
{
"MinTime": 1320
}
]
},
"Parameters": [ ]
},
{
"ID": "utility-ugs-binaries",
"Name": "UGS Binaries",
"AllowPreflights": false,
"InitialAgentType": "Utility",
"ShowUgsBadges": true,
"Priority": "High",
"Arguments": [
"-Script=PROJECTNAME/Build/Graph/Project.xml",
"-Target=BuildProject",
"-set:UseIncrementalAgents=true",
"-set:SubmitUGSBinaries=true"
],
"Schedule": {
"Enabled": false,
"MaxActive": 1,
"Filter": [
"ContainsCode"
],
"Patterns": [
{
"Interval": 1
}
]
},
"Parameters": [ ]
},
{
"ID": "utility-age-symstore",
"Name": "Age Symstore",
"AllowPreflights": false,
"InitialAgentType": "Utility",
"ShowUgsBadges": false,
"Priority": "Normal",
"Arguments": [
"-Script=PROJECTNAME/Build/Graph/Project.xml",
"-Target=AgeSymstore",
"-set:UseIncrementalAgents=true",
"-set:BuildWin64Client=true",
"-set:BuildPS5Client=true",
"-set:BuildXSXClient=true",
"-set:BuildWin64Server=true",
"-set:BuildLinuxServer=true"
],
"Schedule": {
"Enabled": true,
"MaxActive": 1,
"Patterns": [
{
"MinTime": 1200
}
]
},
"Parameters": [ ]
},
{
"ID": "utility-resave-dirty-packages",
"Name": "Resave Dirty Packages",
"AllowPreflights": false,
"InitialAgentType": "Utility",
"ShowUgsBadges": false,
"Priority": "Normal",
"Arguments": [
"-Script=PROJECTNAME/Build/Graph/Project.xml",
"-Target=BuildProject",
"-set:ResaveDirtyPackages=true"
],
"Schedule": {
"Enabled": false,
"MaxActive": 1,
"Patterns": [
{
"MinTime": 120
}
]
},
"Parameters": [ ]
},
{
"ID": "utility-resave-redirectors",
"Name": "Resave Redirectors",
"AllowPreflights": false,
"InitialAgentType": "Utility",
"ShowUgsBadges": false,
"Priority": "Normal",
"Arguments": [
"-Script=PROJECTNAME/Build/Graph/Project.xml",
"-Target=BuildProject",
"-set:UseIncrementalAgents=true",
"-set:ResaveRedirectors=true"
],
"Schedule": {
"Enabled": false,
"MaxActive": 1,
"Patterns": [
{
"MinTime": 180
}
]
},
"Parameters": [ ]
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment