Skip to main content
Version: v4 (current)

Standalone Orchestrator Command

The standalone Orchestrator CLI command is named orchestrate. It is a lower-level provider entry point for running engine work on local Docker, local system, or cloud infrastructure. Unity is the primary built-in package, and engine plugins can adapt the workload for other engines. For the public GameCI CLI, use game-ci orchestrate with a provider plugin.

orchestrate provisions an execution environment, syncs your project, runs the requested workload, and retrieves artifacts.

game-ci orchestrate [options]

This is the standalone CLI equivalent of using game-ci/unity-builder with a providerStrategy in GitHub Actions. It is mainly useful for provider development, debugging, and direct Orchestrator usage. The public CLI uses the same command verb, but it loads providers through the public plugin API and keeps the higher-level GameCI command model.

When To Use This Command

SituationRecommended command
Public CLI provider-backed job with a friendly surfacegame-ci orchestrate from game-ci/cli
Standalone Orchestrator standard remote build shortcutgame-ci build --provider-strategy aws or k8s
Standalone Orchestrator direct provider rungame-ci orchestrate
Standalone local Docker or local host Orchestrator behaviorgame-ci orchestrate --provider-strategy local-docker
Custom job YAML, pre/post steps, cache key testinggame-ci orchestrate
Executable provider protocol serving another CLIgame-ci serve

In short: public orchestrate is the friendly plugin-backed GameCI CLI API, standalone orchestrate is the direct Orchestrator API, and standalone build is only a convenience shortcut for a standard remote build.

Required Options

FlagDescription
--target-platformBuild target platform (e.g. StandaloneLinux64)

Provider Type Selection

Choose where the job runs with the --provider-strategy flag:

ProviderValueDescription
AWS FargateawsServerless containers on AWS (default)
Kubernetesk8sRun on any Kubernetes cluster
Local Dockerlocal-dockerRun in a local Docker container
Local Systemlocal-systemRun directly on the local system
game-ci orchestrate \
--target-platform StandaloneLinux64 \
--provider-strategy aws

Build Options

FlagDefaultDescription
--unity-versionautoUnity Editor version to use. Set to auto to detect from project.
--project-path.Path to the Unity project directory
--build-name(empty)Name of the build
--builds-pathbuildPath where build artifacts are stored
--build-method(empty)Custom static C# build method to invoke
--custom-parameters(empty)Additional parameters for the Unity build
--versioningNoneVersioning strategy: None, Semantic, Tag, Custom

AWS Options

FlagDefaultDescription
--aws-stack-namegame-ciCloudFormation stack name for shared resources
--container-cpu1024CPU units for the Fargate task (1024 = 1 vCPU)
--container-memory3072Memory in MB for the Fargate task

AWS credentials are read from the standard AWS environment variables or credential files:

export AWS_ACCESS_KEY_ID="your-key"
export AWS_SECRET_ACCESS_KEY="your-secret"
export AWS_DEFAULT_REGION="us-east-1"

game-ci orchestrate \
--target-platform StandaloneLinux64 \
--provider-strategy aws \
--container-cpu 2048 \
--container-memory 8192

Kubernetes Options

FlagDefaultDescription
--kube-config(empty)Base64-encoded kubeconfig file contents
--kube-volume(empty)Name of the persistent volume to use
--kube-volume-size5GiSize of the persistent volume
game-ci orchestrate \
--target-platform StandaloneLinux64 \
--provider-strategy k8s \
--kube-config "$(base64 -w 0 ~/.kube/config)" \
--kube-volume-size 25Gi

Cache Options

FlagDefaultDescription
--cache-key(empty)Key used to scope cache entries

Workspace Options

FlagDefaultDescription
--clone-depth50Git clone depth (use 0 for full clone)

Execution Options

FlagDefaultDescription
--watch-to-endtrueFollow build logs until completion
--allow-dirty-buildfalseAllow builds from dirty (uncommitted changes) branches
--skip-activationfalseSkip Unity license activation/deactivation

Git Authentication

The remote environment needs access to your repository. Provide a token with repo access:

game-ci orchestrate \
--target-platform StandaloneLinux64 \
--provider-strategy aws \
--git-private-token "$GITHUB_TOKEN"
FlagDefaultDescription
--git-private-token(empty)GitHub access token with repository read permission

If not provided, the CLI attempts to read the token from the GITHUB_TOKEN environment variable.

Full Example

export AWS_ACCESS_KEY_ID="AKIA..."
export AWS_SECRET_ACCESS_KEY="..."
export AWS_DEFAULT_REGION="us-east-1"

game-ci orchestrate \
--target-platform StandaloneLinux64 \
--provider-strategy aws \
--git-private-token "$GITHUB_TOKEN" \
--container-cpu 2048 \
--container-memory 8192 \
--cache-key "main" \
--builds-path ./dist

See Also