Files
UnrealEngineUWP/Engine/Source/Programs/Horde/BuildHorde.xml
joakim lindqvist 5afbfa7921 Setup CI in Horde for Horde.Storage
Also added ability to override path to dotnet for DotnetTask, to allow us to use a system install dotnet for special cases (in this case we use a newer .NET version then the rest of the engine)


#ROBOMERGE-AUTHOR: joakim.lindqvist
#ROBOMERGE-SOURCE: CL 18222416 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v895-18170469)

[CL 18222429 by joakim lindqvist in ue5-release-engine-test branch]
2021-11-17 08:38:15 -05:00

54 lines
3.3 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 ../../Engine/Build/Graph/Schema.xsd" >
<Option Name="PreflightChange" DefaultValue="" Description="Preflight changelist number"/>
<Option Name="Configuration" DefaultValue="release" Description="Configuration to build"/>
<Property Name="EngineDir" Value="$(RootDir)/Engine"/>
<Property Name="Version" Value="$(EngineMajorVersion).$(EngineMinorVersion).$(EnginePatchVersion)"/>
<Property Name="InformationalVersion" Value="$(Version)-$(Change)"/>
<Property Name="InformationalVersion" Value="$(InformationalVersion)-PF-$(PreflightChange)" If="'$(PreflightChange)' != ''"/>
<Property Name="VersionArguments" Value="/p:Version=$(Version).0 /p:InformationalVersion=$(InformationalVersion)"/>
<Agent Name="HordeServer" Type="Win64_Docker">
<Property Name="StagingDir" Value="$(RootDir)/Engine/Saved/Horde.Build"/>
<Node Name="Build HordeServer">
<!-- Tag all the files that need to be staged to build -->
<Property Name="StagePaths">
Engine/Source/Programs/Shared/...
Engine/Source/Programs/Horde/...
Engine/Source/ThirdParty/Perforce/...
</Property>
<Tag Files="$(StagePaths)" Except=".../.vs/...;.../.git/...;.../bin/...;.../obj/..." With="#InputFiles"/>
<Tag Files="Engine/Source/Programs/Shared/EpicGames.Perforce.Native/bin/..." Filter="*.pdb;*.dll;*.so" With="#InputFiles"/>
<!-- Build the Docker image and publish it -->
<Docker-Build BaseDir="Engine/Source" Files="#InputFiles" Tag="hordeserver-public" DockerFile="Engine/Source/Programs/Horde/Horde.Build/Dockerfile" Arguments="--build-arg msbuild_args=&quot;$(VersionArguments)&quot;"/>
</Node>
</Agent>
<Agent Name="HordeStorage" Type="Linux">
<Property Name="ComposeFile" Value="Engine/Source/Programs/Horde/HordeStorage/Composes/docker-compose-tests.yml"/>
<Node Name="Test HordeStorage">
<Docker-Compose-Up File="$(ComposeFile)"/>
<!-- Run the unit tests, and override the dotnet sdk used to the global one for the machine rather then what is in the sync, to allow us to use newer versions then the rest of the engine has migrated to -->
<DotNet Arguments="test Engine/Source/Programs/Horde/HordeStorage/Horde.Storage.sln" DotNetPath="/usr/share/dotnet/dotnet"/>
<Docker-Compose-Down File="$(ComposeFile)"/>
</Node>
<Node Name="Build HordeStorage" Requires="Test HordeStorage">
<!-- Tag all the files that need to be staged to build -->
<Property Name="StagePaths">
Engine/Source/Programs/Horde/HordeStorage/...
</Property>
<Tag Files="$(StagePaths)" Except=".../.vs/...;.../.git/...;.../bin/...;.../obj/..." With="#InputFiles"/>
<!-- Build the Docker images -->
<Docker-Build BaseDir="Engine/Source/Programs/Horde/HordeStorage" Files="#InputFiles" Tag="horde_storage:$(InformationalVersion)" DockerFile="Engine/Source/Programs/Horde/HordeStorage/dockerfile" Arguments="--build-arg Project=Horde.Storage" Environment="UE_P4_CHANGELIST=(Change)"/>
<Docker-Build BaseDir="Engine/Source/Programs/Horde/HordeStorage" Files="#InputFiles" Tag="callisto:$(InformationalVersion)" DockerFile="Engine/Source/Programs/Horde/HordeStorage/dockerfile" Arguments="--build-arg Project=Callisto" Environment="UE_P4_CHANGELIST=(Change)" />
</Node>
</Agent>
</BuildGraph>