Files
UnrealEngine/Engine/Source/Programs/Horde/HordeServer/Defaults/ue5-release-5.6.stream.json
2025-05-18 13:04:45 +08:00

840 lines
20 KiB
JSON

{
// Update this to the name of your Perforce stream
"name": "//UE5/Release-5.6-HordeSync",
// Macros for strings in the rest of this file (as $(Project) etc...)
"macros":
[
{
"name": "Project",
"value": "Lyra"
},
{
"name": "ProjectPath",
"value": "Samples/Games/Lyra/Lyra.uproject"
},
{
"name": "GameTarget",
"value": "LyraGame"
},
{
"name": "EditorTarget",
"value": "LyraEditor"
}
],
// Default job to run when triggering a preflight from P4VUtils (can be installed through UGS)
"defaultPreflight":
{
"templateId": "default-presubmit-tests",
// Set the base changelist number to the last incremental build that succeeded
"change":
{
"templateId": "incremental-build",
"target": "Incremental Build Minimal",
"outcomes":
[
"Success",
"Warnings"
]
}
},
// Tabs to display in the dashboard for different jobs. Each job needs to be added to a tab to be shown in the New Build dialog.
"tabs":
[
{
"title": "Incremental",
"style": "Compact",
"templates":
[
"incremental-build"
],
"columns":
[
{
"heading": "Editors",
"category": "Editors",
"relativeWidth": 2
},
{
"heading": "Target Platforms",
"category": "Platforms",
"relativeWidth": 4
},
{
"heading": "Other",
"category": "Other",
"relativeWidth": 5
}
]
},
{
"title": "Packaged Builds",
"style": "Normal",
"templates":
[
"packaged-build"
],
"columns":
[
{
"heading": "Editors",
"category": "Editors",
"relativeWidth": 1
},
{
"heading": "Clients",
"category": "Clients",
"relativeWidth": 1
},
{
"heading": "Servers",
"category": "Servers",
"relativeWidth": 1
},
{
"heading": "Tests",
"category": "Tests",
"relativeWidth": 1
},
{
"heading": "Other",
"category": "Other",
"relativeWidth": 1
}
]
},
{
"title": "Presubmit",
"style": "Normal",
"showPreflights": true,
"templates":
[
"default-presubmit-tests"
],
"columns":
[
{
"heading": "Editors",
"category": "Editors",
"relativeWidth": 1
},
{
"heading": "Target Platforms",
"category": "Platforms",
"relativeWidth": 2
},
{
"heading": "Other",
"category": "Other",
"relativeWidth": 1
}
]
},
{
"title": "Utility",
"style": "Normal",
"templates":
[
"installed-build",
"parameter-demo",
"remote-execution-test",
"test-executor",
"custom"
],
"columns":
[
{
"heading": "Editors",
"category": "Editors",
"relativeWidth": 1
},
{
"heading": "Target Platforms",
"category": "Platforms",
"relativeWidth": 2
},
{
"heading": "Other",
"category": "Other",
"relativeWidth": 1
}
]
}
],
// Definitions for different agent types. Agent types are referenced by BuildGraph scripts, and map onto pools and workspace definitions configured here.
"agentTypes":
{
"Win64":
{
"pool": "win-ue5",
"workspace": "Full"
},
"Win64_Licensee": // Used for installed engine build
{
"pool": "win-ue5",
"workspace": "Full"
},
"TestWin64":
{
"pool": "win-ue5-gpu",
"workspace": "Full"
},
"IncrementalWin64":
{
"pool": "win-ue5",
"workspace": "IncrementalCompileOnly"
},
"DevkitAutomation":
{
"pool": "win-devkitautomation",
"workspace": "Full"
}
},
// Different workspace types, meaning Perforce client views that should be synced by particular agent types.
"workspaceTypes":
{
"Full":
{
// Set a unique identifier to prevent overlap with other streams; will cause workspace to be synced to a different folder
"identifier": "Demo",
// Use the native Perforce library to avoid p4.exe dependency
"method": "name=managedWorkspace&preferNativeClient=true"
},
"IncrementalCompileOnly":
{
// Set a unique identifier to prevent overlap with other streams; will cause workspace to be synced to a different folder
"identifier": "Demo-Inc",
// Don't clean the contents of the workspace after building
"incremental": true,
// Filter out files not needed to compilation. Wildcards for these rules is similar to P4 clientspecs.
"view":
[
"-*.uasset",
"-*.umap"
],
// Use the native Perforce library to avoid p4.exe dependency
"method": "name=managedWorkspace&preferNativeClient=true"
}
},
// Artifact types that can be uploaded for this stream, and their retention policies
"artifactTypes": [
{
"type": "packaged-build",
"keepDays": 14
},
{
"type": "staged-build",
"keepDays": 14
},
{
"type": "ugs-pcb",
"keepCount": 5
}
],
// Templates for all the jobs that can be run, as well as any parameters to show in the dashboard's New Build dialog
"templates":
[
{
"id": "incremental-build",
"name": "Incremental Build",
"description": "Performs an incremental editor compile, and uploads the produced binaries to Horde for syncing with UnrealGameSync.",
"initialAgentType": "Win64",
"showUgsBadges": true,
"arguments":
[
"-Script=Engine/Build/Graph/Examples/BuildEditorAndTools.xml",
"-Target=Submit PCBs",
"-set:UProjectPath=$(ProjectPath)",
"-set:EditorTarget=$(EditorTarget)",
"-set:PreferredAgent=IncrementalWin64;CompileWin64;Win64"
]
},
{
"id": "packaged-build",
"name": "Packaged $(Project) Build",
"description": "Creates a packaged build of the configured project, and runs tests for it.",
"initialAgentType": "Win64",
"arguments":
[
"-Script=Engine/Build/Graph/Tasks/BuildAndTestProject.xml",
"-Target=BuildAndTest $(Project)",
"-set:ProjectFile=$(ProjectPath)",
"-set:TargetName=$(GameTarget)",
"-set:EditorTargetName=$(EditorTarget)",
"-set:WithDeviceReservation=false",
"-set:PublishBuilds=false",
"-set:PublishHordeArtifacts=true"
],
"parameters":
[
{
"type": "List",
"label": "Editors",
"style": "MultiList",
"items":
[
{
"group": "Editor",
"text": "Linux",
"argumentIfEnabled": "-set:WithLinuxEditor=true",
"default": false
},
{
"group": "Editor",
"text": "Mac",
"argumentIfEnabled": "-set:WithMacEditor=true",
"default": false
},
{
"group": "Editor",
"text": "Win64",
"argumentIfEnabled": "-set:WithWin64Editor=true",
"default": true
}
]
},
{
"type": "List",
"label": "Editor Tests",
"style": "MultiList",
"items":
[
{
"group": "Test List",
"text": "Boot Test",
"argumentIfEnabled": "-set:EditorBootTest=true",
"argumentIfDisabled": "-set:EditorBootTest=false",
"default": true
},
{
"group": "Test List",
"text": "PIE Test",
"argumentIfEnabled": "-set:EditorTestList=UE.EditorAutomation(RunTest=Project.Maps.PIE)",
"default": true
},
{
"group": "Test List",
"text": "Project Tests (RunTest=Project.*)",
"argumentIfEnabled": "-set:EditorTestList=UE.EditorAutomation(RunTest=Project.)",
"default": false
}
]
},
{
"type": "List",
"label": "Target Platforms",
"style": "MultiList",
"items":
[
{
"group": "Desktop",
"text": "Win64",
"argumentIfEnabled": "-set:WithWin64=true",
"argumentIfDisabled": "-set:WithWin64=false",
"default": true
},
{
"group": "Desktop",
"text": "Mac",
"argumentIfEnabled": "-set:WithMac=true",
"argumentIfDisabled": "-set:WithMac=false",
"default": false
},
{
"group": "Desktop",
"text": "Linux",
"argumentIfEnabled": "-set:WithLinux=true",
"argumentIfDisabled": "-set:WithLinux=false",
"default": false
},
{
"group": "Mobile",
"text": "Android",
"argumentIfEnabled": "-set:WithAndroid=true",
"argumentIfDisabled": "-set:WithAndroid=false",
"default": false
},
{
"group": "Mobile",
"text": "IOS",
"argumentIfEnabled": "-set:WithIOS=true",
"argumentIfDisabled": "-set:WithIOS=false",
"default": false
},
{
"group": "Mobile",
"text": "TVOS",
"argumentIfEnabled": "-set:WithTVOS=true",
"argumentIfDisabled": "-set:WithTVOS=false",
"default": false
}
]
},
{
"type": "List",
"label": "Target Configurations",
"style": "MultiList",
"items":
[
{
"group": "Build Configurations",
"text": "Build Debug Executables",
"argumentIfEnabled": "-set:WithDebugTargets=true",
"default": false
},
{
"group": "Build Configurations",
"text": "Build Development Executables",
"argumentIfEnabled": "-set:WithDevelopmentTargets=true",
"default": true
},
{
"group": "Build Configurations",
"text": "Build Test Executables",
"argumentIfEnabled": "-set:WithTestTargets=true",
"default": false
},
{
"group": "Build Configurations",
"text": "Build Shipping Executables",
"argumentIfEnabled": "-set:WithShippingTargets=true",
"default": false
}
]
},
{
"type": "List",
"label": "Target Packages",
"style": "MultiList",
"items":
[
{
"group": "Package Configurations",
"text": "Create Debug Packages",
"argumentIfEnabled": "-set:WithDebugPackages=true",
"default": false
},
{
"group": "Package Configurations",
"text": "Create Development Packages",
"argumentIfEnabled": "-set:WithDevelopmentPackages=true",
"default": true
},
{
"group": "Package Configurations",
"text": "Create Test Packages",
"argumentIfEnabled": "-set:WithTestPackages=true",
"default": false
},
{
"group": "Package Configurations",
"text": "Create Shipping Packages",
"argumentIfEnabled": "-set:WithShippingPackages=true",
"default": false
}
]
},
{
"type": "List",
"label": "Target Tests",
"style": "MultiList",
"items":
[
{
"group": "Configuration",
"text": "Test Debug Packages",
"argumentIfEnabled": "-set:WithDebugTests=true",
"default": false
},
{
"group": "Configuration",
"text": "Test Development Packages",
"argumentIfEnabled": "-set:WithDevelopmentTests=true",
"default": true
},
{
"group": "Configuration",
"text": "Test Test Packages",
"argumentIfEnabled": "-set:WithTestTests=true",
"default": false
},
{
"group": "Configuration",
"text": "Test Shipping Packages",
"argumentIfEnabled": "-set:WithShippingTests=true",
"default": false
},
{
"group": "Test List",
"text": "Boot Test",
"argumentIfEnabled": "-set:TargetBootTest=true",
"argumentIfDisabled": "-set:TargetBootTest=false",
"default": true
},
{
"group": "Test List",
"text": "Map Tests",
"argumentIfEnabled": "-set:TargetTestList=UE.TargetAutomation(RunTest=Project.Maps.Cycle)",
"default": false
},
{
"group": "Test List",
"text": "Project Tests (RunTest=Project.*)",
"argumentIfEnabled": "-set:TargetTestList=UE.TargetAutomation(RunTest=Project.)",
"default": false
}
]
},
{
"type": "Text",
"label": "Device Manager URL",
"default": "http://localhost:13340",
"argument": "-set:GauntletDeviceService="
},
{
"type": "Text",
"label": "Device Pool",
"default": "UE5",
"argument": "-set:GauntletDevicePool="
}
]
},
{
"id": "default-presubmit-tests",
"name": "Default Presubmit Tests",
"description": "Runs some quick tests on a shelved change, with the option to submit it if the job succeeds.",
"arguments":
[
"-Target=Presubmit Tests",
"-Script=Engine/Build/Graph/Examples/PresubmitTests.xml",
"-set:ProjectPath=$(ProjectPath)",
"-set:EditorTarget=$(EditorTarget)"
]
},
{
"id": "installed-build",
"name": "Installed Engine Build",
"description": "Creates a standalone build of the Unreal Engine that can be installed as a standalone SDK.",
"initialAgentType": "Win64",
"arguments":
[
"-Target=Installed Engine Build",
"-Script=Engine/Build/InstalledEngineBuild.xml"
],
"parameters":
[
{
"type": "List",
"label": "Host Platforms",
"style": "MultiList",
"items":
[
{
"text": "Win64",
"argumentIfEnabled": "-set:WithInstalledWin64=true",
"argumentIfDisabled": "-set:WithInstalledWin64=false",
"default": true
},
{
"text": "Mac",
"argumentIfEnabled": "-set:WithInstalledMac=true",
"argumentIfDisabled": "-set:WithInstalledMac=false",
"default": false
},
{
"text": "Linux",
"argumentIfEnabled": "-set:WithInstalledLinux=true",
"argumentIfDisabled": "-set:WithInstalledLinux=false",
"default": false
}
]
},
{
"type": "List",
"label": "Target Platforms",
"style": "MultiList",
"items":
[
{
"group": "Desktop",
"text": "Win64",
"argumentIfEnabled": "-set:WithWin64=true",
"argumentIfDisabled": "-set:WithWin64=false",
"default": false
},
{
"group": "Desktop",
"text": "Mac",
"argumentIfEnabled": "-set:WithMac=true",
"argumentIfDisabled": "-set:WithMac=false",
"default": false
},
{
"group": "Desktop",
"text": "Linux",
"argumentIfEnabled": "-set:WithLinux=true",
"argumentIfDisabled": "-set:WithLinux=false",
"default": false
},
{
"group": "Desktop",
"text": "LinuxArm64",
"argumentIfEnabled": "-set:WithLinuxArm64=true",
"argumentIfDisabled": "-set:WithLinuxArm64=false",
"default": false
},
{
"group": "Mobile",
"text": "Android",
"argumentIfEnabled": "-set:WithAndroid=true",
"argumentIfDisabled": "-set:WithAndroid=false",
"default": false
},
{
"group": "Mobile",
"text": "IOS",
"argumentIfEnabled": "-set:WithIOS=true",
"argumentIfDisabled": "-set:WithIOS=false",
"default": false
},
{
"group": "Mobile",
"text": "TVOS",
"argumentIfEnabled": "-set:WithTVOS=true",
"argumentIfDisabled": "-set:WithTVOS=false",
"default": false
}
]
},
{
"type": "Bool",
"label": "Build DDC",
"argumentIfEnabled": "-set:WithDDC=true",
"argumentIfDisabled": "-set:WithDDC=false",
"default": true
}
]
},
{
"id": "parameter-demo",
"name": "Parameter Demo",
"description": "Sample showing how to configure different parameter types and access them from BuildGraph scripts.",
"initialAgentType": "Win64",
"arguments":
[
"-Script=Engine/Build/Graph/Examples/Parameters.xml",
"-Target=Print Parameters"
],
"parameters":
[
{
"type": "Text",
"label": "Text Parameter",
"argument": "-set:TextParameter=",
"default": "this-is-a-text-parameter",
"validation": "[a-zA-Z0-9_-]+",
"validationError": "Should be a sequence of alphanumeric characters",
"hint": "Enter a string of alphanumeric characters",
"toolTip": "Tooltip for text parameter"
},
{
"type": "List",
"label": "List Parameter (Default Style)",
"toolTip": "Tooltip for list parameter",
"items":
[
{
"text": "Option 1",
"argumentIfEnabled": "-set:ListParameter=Option1"
},
{
"text": "Option 2",
"argumentIfEnabled": "-set:ListParameter=Option2",
"default": true
},
{
"text": "Option 3",
"argumentIfEnabled": "-set:ListParameter=Option3"
}
]
},
{
"type": "List",
"style": "MultiList",
"label": "List Parameter (MultiList Style)",
"toolTip": "Tooltip for list parameter (MultiList)",
"items":
[
{
"group": "First group",
"text": "Option 1",
"argumentIfEnabled": "-set:MultiListOption1=true",
"default": true
},
{
"group": "First group",
"text": "Option 2",
"argumentIfEnabled": "-set:MultiListOption2=true"
},
{
"group": "Second group",
"text": "Option 3",
"argumentIfEnabled": "-set:MultiListOption3=true",
"default": true
},
{
"group": "Second group",
"text": "Option 4",
"argumentIfEnabled": "-set:MultiListOption4=true"
}
]
},
{
"type": "List",
"style": "TagPicker",
"label": "List Parameter (TagPicker Style)",
"toolTip": "Tooltip for list parameter (TagPicker)",
"items":
[
{
"text": "Option 1",
"argumentIfEnabled": "-set:TagPickerOption1=true",
"default": true
},
{
"text": "Option 2",
"argumentIfEnabled": "-set:TagPickerOption2=true"
},
{
"text": "Option 3",
"argumentIfEnabled": "-set:TagPickerOption3=true",
"default": true
},
{
"text": "Option 4",
"argumentIfEnabled": "-set:TagPickerOption4=true"
}
]
},
{
"type": "Bool",
"label": "Bool Parameter",
"toolTip": "Tooltip for bool parameter",
"argumentIfEnabled": "-set:BoolParameter=true",
"argumentIfDisabled": "-set:BoolParameter=false"
}
]
},
{
"id": "remote-execution-test",
"name": "Remote Execution Test",
"description": "Builds a target with all compilation steps forced to execute remotely using Unreal Build Accelerator.",
"arguments":
[
"-Script=Engine/Build/Graph/Tasks/RemoteExecutionTest.xml",
"-Target=Compile Target"
],
"parameters":
[
{
"type": "Text",
"label": "Target",
"argument": "-set:Target=",
"default": "UnrealEditor"
},
{
"type": "Text",
"label": "Configuration",
"argument": "-set:Configuration=",
"default": "Development"
},
{
"type": "Text",
"label": "Platforms",
"argument": "-set:Platforms=",
"default": "Win64"
},
{
"type": "Text",
"label": "Arguments",
"argument": "-set:Arguments=",
"default": "-UBA -UBAForceRemote -UBAStrict"
},
{
"type": "Bool",
"label": "Clean before build",
"argumentIfEnabled": "-set:Clean=true",
"argumentIfDisabled": "-set:Clean=false",
"default": true
}
]
},
{
"id": "test-executor",
"name": "Run Test Executor",
"description": "Simulate a simple job without syncing any data from revision control.",
"initialAgentType": "Win64",
"arguments":
[
"-Target=Full Build",
"-Project=$(Project)"
],
"parameters":
[
{
"type": "Bool",
"label": "Simulate Warning",
"argumentIfEnabled": "-set:SimulateWarning=true",
"argumentIfDisabled": "-set:SimulateWarning=false",
"default": true
},
{
"type": "Bool",
"label": "Simulate Error",
"argumentIfEnabled": "-set:SimulateError=true",
"argumentIfDisabled": "-set:SimulateError=false",
"default": true
}
],
"jobOptions":
{
"executor": "Test"
}
},
{
"id": "custom",
"name": "Custom...",
"arguments":
[
],
"parameters":
[
{
"type": "Text",
"label": "Script",
"argument": "-Script=",
"default": "Foo.xml"
},
{
"type": "Text",
"label": "Target",
"argument": "-Target=",
"default": ""
}
]
}
]
}