Skip to main content
Version: v4 (current)

Engine Launch Wrapper

--engine-launch-wrapper prefixes the engine's own process invocation with a command of your choice — for example a self-hosted runner's own launch-serialization lock, so only one Unity Editor process launches at a time on a machine that runs multiple runners.

game-ci orchestrate ./my-unity-project \
--provider-strategy local \
--target-platform StandaloneLinux64 \
--engine-launch-wrapper "flock /tmp/unity-launch.lock --"
OptionDefaultDescription
--engine-launch-wrapperemptyCommand to prefix the engine's process invocation with. Only meaningful for providerStrategy=local/local-system.

Scope: The Engine Launch, Not The Build Step

This wraps precisely the point where the engine process itself is spawned — not the surrounding build step, and not the whole pipeline phase the way a middleware hook does. That distinction matters: a middleware before/after hook runs adjacent to a phase (setup, build, pre-build, post-build), while the launch wrapper is applied at the single call site that actually invokes the engine binary, inside the host-mode step scripts.

Use middleware when you want to run something before/after a whole phase (uploading logs, notifying a webhook, warming a cache). Use the launch wrapper when you need something wrapped tightly around the engine process launch itself — a lock, a resource limiter, or a process-level instrumentation tool that needs to see the engine's own exit code directly.

Only Meaningful For local/local-system

The launch wrapper only affects the bare-host local/local-system provider strategy's step scripts. Providers that run inside containers/cloud infrastructure (local-docker, aws, k8s, and the rest) don't invoke the engine through this call site the same way, so the option has no effect there.

The wrapper is passed to the local host step scripts through ENGINE_LAUNCH_WRAPPER. Quote it as a single CLI value, and test the command on the runner's shell: Linux host steps invoke it through their shell, while Windows host steps use PowerShell command semantics.

--engine-launch-wrapper is deliberately exposed only by game-ci orchestrate. Core game-ci build/test/activate do not register this option.