Skip to content

spike: run unity 6 linux ci on Unity CLI instead of GameCI - #2912

Draft
bitsandfoxes wants to merge 20 commits into
mainfrom
chore/linux-arm64-ubuntu-cli
Draft

bitsandfoxes wants to merge 20 commits into
mainfrom
chore/linux-arm64-ubuntu-cli

Conversation

@bitsandfoxes

@bitsandfoxes bitsandfoxes commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

Moves every Linux CI job that runs a Unity 6 editor off the GameCI Docker images. These jobs now install the editor with the Unity CLI through scripts/setup-unity.ps1 on ubuntu-24.04, the way the macOS and Windows jobs already do. Unity 2021.3 and 2022.3 keep their GameCI images and runners.

Job Module
Create project (test-create.yml) editor only
Build Linux (test-build-linux.yml) linux-il2cpp
Build Linux Server arm64 (test-build-linux-arm64.yml, was macos-latest) linux-server
Build Android (test-build-android.yml, was ubuntu-latest-4-cores) android + child modules
Build iOS (test-build-ios.yml) ios
Build WebGL (ci.yml) webgl
  • Runner: the jobs pin ubuntu-24.04, the newest Ubuntu Unity supports. ubuntu-latest is now 26.04, and there Unity's bundled IL2CPP linker (ld.lld from LLVM 15) can't load libxml2.so.2: 26.04 only ships libxml2.so.16.
  • Version gate: the jobs check fromJSON(version) >= 6000, as test-run-android.yml already does. Moving 2022.3 later only lowers the number.
  • UNITY_PATH: ci-docker.sh now writes it to GITHUB_ENV, like setup-unity.ps1 does, replacing the hard-coded job-level docker exec unity unity-editor.
  • Symbol upload: the build steps now get SENTRY_AUTH_TOKEN in their env. The host editor reads it there; before, the container got it at start.
  • Android disk: Android moves to the standard runner, so it gets the same free-disk step the Linux and WebGL jobs already use.
  • setup-unity.ps1: pins the unity-linux-x64 CLI binary (1.0.0-beta.14). Unity publishes no hash for it, so the SHA-256 is computed from the CDN download. On Linux the script writes the license server config to /usr/share/unity3d/config, the path ci-docker.sh uses.

Timing on this PR (6000.6). The table shows Unity setup minutes per job. The setup now runs while the jobs would otherwise wait for package-release, so whole PR runs took 47 and 59 minutes, against 27–58 for recent GameCI PR runs.

GameCI image pull Unity CLI install
Create 1.5 3.4–13.3
Linux 1.3 4.3–12.2
Android 2.3 5.1–9.9
iOS 2.0 11.1–14.9
WebGL 2.8 8.5–15.0

The CLI install time depends on Unity's CDN download speed. The builds themselves were the same or faster on the host. The Android job took 19 and 14 minutes including setup, against 21 on GameCI, and now runs on a standard runner instead of a billed larger one.

Follow-up to #2894.

#skip-changelog

🤖 Generated with Claude Code

@bitsandfoxes bitsandfoxes changed the title Build the Linux arm64 server test on Ubuntu with the Unity CLI Run Unity 6 Linux CI on the Unity CLI instead of GameCI Oct 27, 2026
@bitsandfoxes
bitsandfoxes marked this pull request as draft October 28, 2026 14:16
@bitsandfoxes bitsandfoxes changed the title Run Unity 6 Linux CI on the Unity CLI instead of GameCI spike: run unity 6 linux ci on Unity CLI instead of GameCI Oct 28, 2026
Base automatically changed from feat/linux-arm64-support to main October 28, 2026 15:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant