When upgrading Unity, the required Game-CI Docker images may not yet be available upstream. To unblock CI and local builds, we provide a GitHub Actions workflow that allows us to manually build and publish Unity editor images to our own GitHub Container Registry (GHCR) namespace.
This ensures we can continue upgrading Unity without waiting for official Game-CI images to be released.
Use this workflow when:
- Upgrading to a newer Unity version that is not yet available via Game-CI images
- CI tests.yml fails due to missing Unity editor Docker images
The workflow lives here:
https://github.com/decentraland/unity-explorer/actions/workflows/build-game-ci-image.yml
The workflow:
- Clones the official
game-ci/dockerrepository - Builds a Unity editor Docker image using the selected inputs
- Tags the image following our internal naming convention
- Pushes the image to GHCR under
ghcr.io/decentraland
These images can then be referenced by CI jobs exactly like standard Game-CI images.
All images are published with the following format:
ghcr.io/decentraland/unityci-editor:<base_os>-<editor_version>-<target_platform>-<image_suffix>
Example:
ghcr.io/decentraland/unityci-editor:ubuntu-6000.2.14f1-linux-il2cpp-3.2.0
- Go to Actions -> Build GameCI Image
- Click Run workflow
- Fill in the inputs:
-
Editor Version Unity editor version (e.g.
6000.2.14f1) -
Change Set Unity changeset hash for that editor version This must match the exact Unity release
-
Base OS OS used for the Docker image Usually
ubuntu -
Target Platform Unity module to install Common values:
linux-il2cppwindows-il2cppmac-il2cppandroidioswebgl
-
Image Tag Suffix Used to version or differentiate images Typically aligned with our internal Game-CI versioning
- Run the workflow and wait for the image to build and push
The build runs on a custom runner: This is required due to:
- Large Docker image size
- Unity editor install requirements
- Build memory usage
Once built and pushed, re-running the failing tests.yml will now retrieve the image from the GHCR.