Preflights
Build All Target Platforms
Section titled “Build All Target Platforms”Thanks to incremental agents work done to build the game for a preflight will largely be re-used when generating PCBs to distribute to the team. It’s worth compiling the game, editor, and any servers as part of your preflight.
Launch the Game and Editor
Section titled “Launch the Game and Editor”BuildAndTestProject.xml provides a good example of a simple target which launches both the editor and game, reporting the results to the Automation Hub. The <Agent> block that runs the tests in Epic’s boilerplate can be found here: https://github.com/EpicGames/UnrealEngine/blob/6978b63c8951e57d97048d8424a0bebd637dde1d/Engine/Build/Graph/Tasks/BuildAndTestProject.xml#L341
Tests themselves are written in C#. The code for the editor and game boot tests can be found here: https://github.com/EpicGames/UnrealEngine/blob/ue5-main/Engine/Source/Programs/AutomationTool/Gauntlet/Unreal/Automation/UE.BootTest.cs
Note, launching the game and editor requires a GPU instance.
Data Validators
Section titled “Data Validators”Unreal has a system for validating content which can be run in CI as well as from UnrealEd: https://dev.epicgames.com/documentation/en-us/unreal-engine/data-validation-in-unreal-engine
The validators can be executed using the DataValidation commandlet in BuildGraph:
<Commandlet Name="DataValidation" Arguments="-project=$(TargetProject) -build=Editor -unattended -buildmachine"/>