Files
UnrealEngineUWP/Engine/Extras/Containers/Dockerfiles/linux/test.sh
adam rehn 7749f21a95 Update official container image Dockerfiles for UE5
#rb Luke.Bermingham

#ROBOMERGE-AUTHOR: adam.rehn
#ROBOMERGE-SOURCE: CL 18441473 in //UE5/Release-5.0/... via CL 18444772
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)

[CL 18444939 by adam rehn in ue5-release-engine-test branch]
2021-12-13 13:18:32 -05:00

51 lines
2.1 KiB
Bash
Executable File

#!/usr/bin/env bash
# Runs tests for the specified container image
function runTests {
# Spin up a container using the specified container image
docker run --name 'unrealtest' --rm -d "$1" bash -c 'sleep infinity'
# Checkout the source code of a demo Unreal project in the container
docker exec 'unrealtest' git clone --progress --depth=1 'https://gitlab.com/ue4-test-projects/4.26/firstpersoncxx.git' /home/ue4/project
# Enable the WebBrowserWidget plugin, to ensure we test the ability to package projects that use CEF
docker exec 'unrealtest' sed -i 's|"Modules"|"Plugins": [{"Name": "WebBrowserWidget", "Enabled": true}],\n\t"Modules"|' /home/ue4/project/FirstPersonCxx.uproject
# Test that we can build the demo Unreal project in the container
docker exec 'unrealtest' /home/ue4/UnrealEngine/Engine/Build/BatchFiles/Linux/Build.sh \
FirstPersonCxxEditor Linux Development \
-project=/home/ue4/project/FirstPersonCxx.uproject
# Test that we can package the demo Unreal project in the container
docker exec 'unrealtest' /home/ue4/UnrealEngine/Engine/Build/BatchFiles/RunUAT.sh \
BuildCookRun \
-clientconfig=Shipping -serverconfig=Shipping \
-project=/home/ue4/project/FirstPersonCxx.uproject \
-utf8output -nodebuginfo -allmaps -noP4 -cook -build -stage -prereqs -pak -archive \
-archivedirectory=/home/ue4/project/dist \
-platform=Linux
# Copy the packaged binaries to the host system so the user can run the project if desired
docker cp 'unrealtest:/home/ue4/project/dist' "`pwd`/$2"
# Spin down the container and wait for it to be removed
docker kill 'unrealtest'
sleep 10
}
# Determine which release of the Unreal Engine we will be testing the built container images for
UNREAL_ENGINE_RELEASE="4.27"
if [[ ! -z "$1" ]]; then
UNREAL_ENGINE_RELEASE="$1"
fi
# Print commands as they are executed and halt immediately if any command fails
set -ex
# Run tests using both the regular and slim variants of the development container image
runTests "ghcr.io/epicgames/unreal-engine:dev-${UNREAL_ENGINE_RELEASE}" 'dist-dev'
runTests "ghcr.io/epicgames/unreal-engine:dev-slim-${UNREAL_ENGINE_RELEASE}" 'dist-slim'