chore: Custom GitHub runner image with Unreal docker pre-installed#1340
chore: Custom GitHub runner image with Unreal docker pre-installed#1340tustanivsky wants to merge 13 commits into
Conversation
Semver Impact of This PR🟢 Patch (bug fixes) 📋 Changelog PreviewThis is how your changes will appear in the changelog. Bug Fixes 🐛
Internal Changes 🔧Deps
Other
Other
🤖 This preview updates automatically when you update the PR. |
4880a84 to
c6300ce
Compare
b1c447a to
8c5dfb4
Compare
Removed snapshot specification for the create-image job.
…roid platform files
|
|
||
| on: | ||
| push: | ||
| workflow_dispatch: |
There was a problem hiding this comment.
Unfiltered push trigger runs branch-controlled scripts on snapshot-persistent self-hosted image runners
The custom-image-* workflows trigger on any push with no branches: filter, check out the pushed ref, and run repo-local scripts (./scripts/clean-storage-linux.sh / clean-storage-win.ps1) on persistent self-hosted runners (unreal-image-creating-runner-*) whose disk is captured via snapshot: into a base image reused by future jobs. A contributor with write access can push a modified script to any feature branch to execute code on the runner before the snapshot boundary, persistently poisoning every downstream runner image. Add a branches: [main] filter so only trusted refs build the images.
Evidence
on: pushincustom-image-android.ymlandcustom-image-windows.ymlhas nobranches:filter, so any push to any branch triggers the workflow.- The
Free up disk spacestep runs./scripts/clean-storage-linux.sh/clean-storage-win.ps1directly from the checked-out ref, so a modified script on the pushed branch executes verbatim on the runner. runs-on: unreal-image-creating-runner-linux/-windowswithsnapshot: unreal-image-*indicates the runner state is captured into a reusable base image, so pre-snapshot code execution persists into future images.- Precondition: the
pushtrigger only fires for repository write-access users (not forks), limiting the actor to trusted collaborators, which bounds impact.
Identified by Warden security-review · 9HZ-CTN
This PR adds custom GitHub runner image generation workflows aimed at reducing CI times. Instead of pulling large Unreal Engine Docker images at the beginning of every job, they are pre-pulled and baked into reusable runner snapshots. As a result, build/test checks can start with the required Docker images already available locally, eliminating image download time and reducing network-related variability.
Custom Image Generation
Three dedicated, single-purpose image-builder workflows are introduced, each producing its own named snapshot:
custom-image-windows.ymlunreal-image-windowsunreal-image-creating-runner-windowscustom-image-linux.ymlunreal-image-linuxunreal-image-creating-runner-linuxcustom-image-android.ymlunreal-image-androidunreal-image-creating-runner-linuxEach workflow runs on
workflow_dispatchand a weekly schedule. During execution it:Custom image generation runner specs:
Benchmarks and Estimated Cost
Other Considerations
#skip-chagelog