Setting up a Windows build machine consists of a few steps:
1. Install the Unreal Engine
2. Install the gitlab runner service and register a gitlab runner. Prefereably a shared runner. Use executor `shell`. Use the tags `windows` and `unreal-4.21`(replace version number) for the runner. Make sure to specify a user for the `gitlab-runner install` call, such that the service is not running as admin afterwards.
3. Configure the gitlab runner. For this open the config.toml file and add the following lines (change path to unreal engine folder):
6. 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
```
7. Register a gitlab-runner. Preferably a shared runner. Use executor `shell`. Use the tags `centos` and `unreal-4.21` (replace version) for your runner.
8. 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
4. The generated public keys can be viewed via the following commands. Note them.
```
cat ~/.ssh/cluster_access_av006de
cat ~/.ssh/cluster_access_vrdev
```
5. 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.
6. To not allow full access to the cluster from the deploy machine, prepend the `vrdev` key in the `authorized_keys` file with the following command:
7. To not allow full access to the cluster from the deploy machine, prepend the `av006de` key in the `authorized_keys` file with the following command:
9. 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`.
10. Configure the gitlab runner to use this structure by adding the following lines to the config.toml