Context
unity-activate (#111) and unity-builder (#844) have both been converted from importing @game-ci/unity-engine-core as an in-process library to actually shelling out to game-ci/cli as a subprocess - the real actions-invoke-cli architecture (game-ci/roadmap#11 workstream 2). unity-test-runner (#310) is the third and last, still on the old library-import approach - and unlike the other two, it can't be safely converted yet.
The gap
cli test and unity-test-runner are not the same feature with different plumbing - they're architecturally different:
cli test (src/command/test/unity-test-command.ts) runs Unity's own official, still-experimental unity test CLI (docs.unity.com/en-us/unity-cli) directly on the local machine. No Docker at all.
unity-test-runner is entirely Docker/Hub-image-driven, and has a real feature surface cli test doesn't touch: package-mode testing (packageMode, scopedRegistryUrl, registryScopes), code coverage (coverageOptions, coveragePath output), GitHub Checks API reporting (githubToken, checkName), artifactsPath output, and the same docker resource/registry options build has (dockerCpuLimit, containerRegistryRepository, etc.).
Converting unity-test-runner to invoke cli test as-is would silently drop all of that for anyone using it today - the same class of regression closed for build in #70, just much bigger.
What's needed
A Docker-based mode for cli test (or a new command) that actually matches unity-test-runner's real surface - closer in scope to build (which already has the Docker orchestration, docker resource/registry options) than to today's local-unity test-CLI-only test command. Rough shape, not a final design:
- Docker-driven test execution (reusing
Docker.run/RunnerImageTag, same as build)
- Package-mode support (testing a Unity package instead of a full project)
- Coverage options and a coverage output path
- GitHub Checks API reporting (or an equivalent that doesn't hardcode a GitHub-only DX into
cli, if this is meant to also serve local/non-Actions use)
Not scoping this further or attempting an implementation here - it's a materially bigger effort than #70 and deserves its own design pass, not something to rush blind.
🤖 Generated with Claude Code
Context
unity-activate(#111) andunity-builder(#844) have both been converted from importing@game-ci/unity-engine-coreas an in-process library to actually shelling out togame-ci/clias a subprocess - the real actions-invoke-cli architecture (game-ci/roadmap#11 workstream 2).unity-test-runner(#310) is the third and last, still on the old library-import approach - and unlike the other two, it can't be safely converted yet.The gap
cli testandunity-test-runnerare not the same feature with different plumbing - they're architecturally different:cli test(src/command/test/unity-test-command.ts) runs Unity's own official, still-experimentalunity testCLI (docs.unity.com/en-us/unity-cli) directly on the local machine. No Docker at all.unity-test-runneris entirely Docker/Hub-image-driven, and has a real feature surfacecli testdoesn't touch: package-mode testing (packageMode,scopedRegistryUrl,registryScopes), code coverage (coverageOptions,coveragePathoutput), GitHub Checks API reporting (githubToken,checkName),artifactsPathoutput, and the same docker resource/registry optionsbuildhas (dockerCpuLimit,containerRegistryRepository, etc.).Converting
unity-test-runnerto invokecli testas-is would silently drop all of that for anyone using it today - the same class of regression closed forbuildin #70, just much bigger.What's needed
A Docker-based mode for
cli test(or a new command) that actually matchesunity-test-runner's real surface - closer in scope tobuild(which already has the Docker orchestration, docker resource/registry options) than to today's local-unity test-CLI-onlytestcommand. Rough shape, not a final design:Docker.run/RunnerImageTag, same asbuild)cli, if this is meant to also serve local/non-Actions use)Not scoping this further or attempting an implementation here - it's a materially bigger effort than #70 and deserves its own design pass, not something to rush blind.
🤖 Generated with Claude Code