Windows Build Machines
Setting up a Windows build machine consists of a few steps:
- Install the Unreal Engine Versions 5.1,4.27,4.26 and 4.22
- Install git
- Install Visual Studio according to Unreals Description
- Install the gitlab runner service and register a gitlab runners. This can be done with:
C:\GitLab-Runner\gitlab-runner.exe register --tag-list "windows, unreal-5.1" --builds-dir "Y:/" --executor "shell" --shell "powershell" -r "<token>" -u "https://git-ce.rwth-aachen.de" --name "Unreal-Runner-5.1-BM3" --env "UE_ENGINE_FOLDER=C:/Program Files/Epic Games/UE_5.1/Engine" --env "ADDITIONAL_LOGS=C:/Program Files/Epic Games/UE_5.1/Engine/Programs/AutomationTool/Saved/Logs" -n
C:\GitLab-Runner\gitlab-runner.exe register --tag-list "windows, unreal-4.27" --builds-dir "Y:/" --executor "shell" --shell "powershell" -r "<token>" -u "https://git-ce.rwth-aachen.de" --name "Unreal-Runner-4.27-BM3" --env "UE_ENGINE_FOLDER=C:/Program Files/Epic Games/UE_4.27/Engine" --env "ADDITIONAL_LOGS=C:/Program Files/Epic Games/UE_4.27/Engine/Programs/AutomationTool/Saved/Logs" -n
C:\GitLab-Runner\gitlab-runner.exe register --tag-list "windows, unreal-4.26" --builds-dir "Y:/" --executor "shell" --shell "powershell" -r "<token>" -u "https://git-ce.rwth-aachen.de" --name "Unreal-Runner-4.26-BM3" --env "UE_ENGINE_FOLDER=C:/Program Files/Epic Games/UE_4.26/Engine" --env "ADDITIONAL_LOGS=C:/Program Files/Epic Games/UE_4.26/Engine/Programs/AutomationTool/Saved/Logs" -n
C:\GitLab-Runner\gitlab-runner.exe register --tag-list "windows, unreal-4.22" --builds-dir "Y:/" --executor "shell" --shell "powershell" -r "<token>" -u "https://git-ce.rwth-aachen.de" --name "Unreal-Runner-4.22-BM3" --env "UE_ENGINE_FOLDER=C:/Program Files/Epic Games/UE_4.22/Engine" --env "ADDITIONAL_LOGS=C:/Program Files/Epic Games/UE_4.22/Engine/Programs/AutomationTool/Saved/Logs" -n
- Start/Restart the gitlab runner service
CentOS Build Machines 4.21
Setting up a CentOS build machine consists of a few steps:
- Set up the gitlab runner according to the instructions of gitlab. Do not register a runner yet.
- Switch to the Gitlab-Runner user account you have created
- Download/Clone the Unreal Engine source code
- Go to the
/Engine/Plugins/Runtime/
and remove thenDisplay
folder - In the empty folder clone the nDisplay repository and remove its .git folder with with
git clone https://devhub.vr.rwth-aachen.de/VR-Group/ndisplay.git ./nDisplay
rm -rf ./nDisplay/.git
- Go back to the root folder of the downloaded Unreal Engine. Run the following commands to build the engine (will take about 1h):
Make sure to NOT run this commands as root. The engine refuses to build as root. Use a less priviledged user instead.
./Setup.sh && ./GenerateProjectFiles.sh && make
- Make an installed build by running these commands:
cp -r UnrealEngine/ RocketBuild/
./RocketBuild/Engine/Build/BatchFiles/RunUAT.sh BuildGraph -target="Make Installed Build Linux" -script=Engine/Build/InstalledEngineBuild.xml -clean -set:HostPlatformOnly=true -set:WithDDC=false
- Move the compiled version from the
LocalBuilds
folder to a more appropriate folder - Provide an appropriate version of clang on the build machine
- Register a gitlab-runner. Preferably a shared runner. Use executor
shell
. Use the tagscentos
andunreal-4.21
(replace version) for your runner. - Configure this runner by adding the following lines to the config.toml (locate it by gitlab-runner verify) and replace the path with your engine installation, keep the log folder and change the clang path to your local clang version
builds_dir = "/home/Some/Folder/Where/Builds/Are/Stored"
environment = ["UE_ENGINE_FOLDER=/home/gitlab-runner/dev/Unreal_4_21/Rocket/Engine/Linux/Engine", "ADDITIONAL_LOGS=/home/gitlab-runner/Library/Logs/Unreal Engine/LocalBuildLogs" ,"PREPEND_PATH=/home/gitlab-runner/dev/clang6/bin"]
- Start/Restart the gitlab runner service
CentOS Build Machines 4.22
- Run the attached download_and_compile_4_22.sh
- Register the gitlab-runner (and following steps) as for 4.21
CentOS Deploy Machines
Setting up a CentOS deploy machine consists of a few steps:
- Set up the gitlab runner according to the instructions of gitlab.
- Register a gitlab-runner. Preferably a shared runner. Use executor
shell
. Use the tagscentos
andnetworkdeploy
for your runner. - Set up ssh keys for the access to the cluster via the following commands
ssh-keygen -f ~/.ssh/cluster_access_av006de -q -P ""
ssh-keygen -f ~/.ssh/cluster_access_vrdev -q -P ""
- The generated public keys can be viewed via the following commands. Note them.
cat ~/.ssh/cluster_access_av006de
cat ~/.ssh/cluster_access_vrdev
- Append the first key to the
/home/av006de/.ssh/authorized_keys
file on the cluster and the second key to the/home/vrdev/.ssh/authorized_keys
file. - To not allow full access to the cluster from the deploy machine, prepend the
vrdev
key in theauthorized_keys
file with the following command:
command="/home/av006de/bin/rrsync ~/UnrealCIDeploy/",no-agent-forwarding,no-port-forwarding,no-pty,no-user-rc,no-X11-forwarding
it should look like
command="/home/av006de/bin/rrsync ~/UnrealCIDeploy/",no-agent-forwarding,no-port-forwarding,no-pty,no-user-rc,no-X11-forwarding ssh-rsa AAAAB...
- To not allow full access to the cluster from the deploy machine, prepend the
av006de
key in theauthorized_keys
file with the following command:
command="/home/av006de/bin/rrsync ~/demos_UNREAL/CI/",no-agent-forwarding,no-port-forwarding,no-pty,no-user-rc,no-X11-forwarding
it should look like
command="/home/av006de/bin/rrsync ~/demos_UNREAL/CI/",no-agent-forwarding,no-port-forwarding,no-pty,no-user-rc,no-X11-forwarding ssh-rsa AAAAB...
- Note that the prepend commands are different
- Create a folder directory which is used for syncing with the cluster folder. For this you could use the a structure with
~/dev/unreal_current_deployment/vrdev
and~/dev/unreal_current_deployment/av006de
. - Configure the gitlab runner to use this structure by adding the following lines to the config.toml
environment = ["VRDEV_UNREAL_DEPLOY_FOLDER=/home/gitlab-runner/dev/unreal_current_deployment/vrdev", "CAVE_UNREAL_DEPLOY_FOLDER=/home/gitlab-runner/dev/unreal_current_deployment/av006de"]
- Start/Restart the gitlab runner service