Skip to main content
Version: v4 (current)

Orchestrate Command

The orchestrate command runs Unity builds on cloud infrastructure instead of the local machine. It provisions a remote environment, syncs your project, runs the build, and retrieves artifacts.

game-ci orchestrate [options]

This is the CLI equivalent of using game-ci/unity-builder with a providerStrategy in GitHub Actions.

Required Options

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

Provider Selection

Choose where your build 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