This is a build system demonstration for the UE4 engine.
The engine source code is stored in a private GitHub repo. This repo contains just the build instructions. It builds using GitHub Actions, using a self-hosted runner. The result is an installed build, similar to what Epic Games Launcher offers. The build is stored in a Longtail cloud store. Google Cloud Platform is used for VMs and storage.
See UE4-GHA-Game for a game that uses the engine builds, and UE4-GHA-BuildSystem for the build system itself.
The build script for the engine is short and to the point.
You can follow the build process via GitHub Actions.
The self-hosted runner VM allows for incremental builds.
The VM is only running when a build is in progress. Therefore, it only incurs vCPU/RAM cost during the builds. (The VM disk incurs cost even when the VM is stopped.)
The Longtail store deduplicates data server-side -- so having lots of near-identical builds will not use a lot of space server-side. Also, downloading near-identical builds works like downloading patches in Steam.
A clean build takes about 2 hours on an n1-standard-32
machine. This includes fetching the entire UE4 source code + deps, building Editor, Game, Client, Server for Win64, building tools, building feature packs, and uploading the resulting build to Longtail.
See the issues list to get a feeling for the project status and what is missing.
If you clone this to your own repository, you must pick a short name. GitHub Actions will attempt to build UE4 from C:\A\_work\<reponame>\<reponame>\UE4
on the runner machine - and this path must be less than 50 characters long.
Getting access to the actual UE4 source code via GitHub requires you to sign an EULA with Epic Games.
The license for these engine build scripts are available in LICENSE.txt. See golongtail for licenses of the software it depends on.