Skip to main content
Version: v4 (current)

Introduction

Orchestrator runs GameCI builds on the infrastructure you choose instead of forcing the build to run on the CI runner that started the workflow. A GitHub Action, CLI command, or another CI system can dispatch the job; Orchestrator then provisions the target environment, syncs the project, restores caches, runs the build, uploads outputs, and cleans up.

Use it when you need more control than a standard hosted runner gives you: larger CPU and memory profiles, persistent workspaces, cloud burst capacity, provider fallback, custom hooks, or build jobs that should continue after the CI runner has returned.

Built into Unity Builder

For GitHub Actions, Orchestrator is built into game-ci/unity-builder and activates when you set providerStrategy. The standalone @game-ci/orchestrator CLI provides the same model outside GitHub Actions.

What It Handles

AreaWhat Orchestrator does
Provider lifecycleCreates cloud jobs, containers, Kubernetes jobs, local Docker runs, or custom providers
Source syncClones git, pulls LFS, initializes submodules, and supports advanced sync strategies
CachingRestores and saves Library, LFS, build output, checkpoints, and retained workspaces
Build executionRuns Unity builds, custom editor methods, tests, or custom container jobs
Hooks and servicesInjects command hooks, container hooks, LFS agents, storage hooks, and build services
SecretsPulls secrets from CI inputs, cloud secret managers, vaults, or custom commands
ResultsStreams logs, uploads artifacts, updates GitHub Checks, and supports async jobs
CleanupReleases locks, removes stale resources, and supports scheduled garbage collection

Common Starting Points

GoalStart here
Run a normal Unity build on AWS or K8sGetting Started
Compare standard GameCI and OrchestratorGameCI vs Orchestrator
Run from a terminalCLI
Choose a providerProviders
Tune cache behaviorCaching
Keep whole workspaces warmRetained Workspaces
Add custom build stepsHooks
Look up inputsAPI Reference

Providers

ProviderDescription
AWS FargateFully managed containers on AWS. No servers to maintain.
KubernetesRun jobs on any Kubernetes cluster.
Local DockerRun the same container workflow on a local machine.
LocalExecute directly on the host machine.

Additional provider integrations include GCP Cloud Run, Azure ACI, custom providers, and community providers.

When It Helps Most

  • Your Unity Library import is too slow for a hosted runner cache.
  • Your project needs more CPU, memory, disk, or timeout control than the CI runner provides.
  • You want builds to continue asynchronously after GitHub Actions dispatches them.
  • You maintain self-hosted runners but need fallback when they are busy or offline.
  • Your pipeline needs provider-specific hooks, storage backends, custom LFS agents, or retained workspaces.

If your project builds comfortably on standard hosted runners and does not need these controls, standard GameCI may be simpler. See GameCI vs Orchestrator for the decision guide.