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
| Flag | Description |
|---|---|
--target-platform | Build target platform (e.g. StandaloneLinux64) |
Provider Selection
Choose where your build runs with the --provider-strategy flag:
| Provider | Value | Description |
|---|---|---|
| AWS Fargate | aws | Serverless containers on AWS (default) |
| Kubernetes | k8s | Run on any Kubernetes cluster |
| Local Docker | local-docker | Run in a local Docker container |
| Local System | local-system | Run directly on the local system |
game-ci orchestrate \
--target-platform StandaloneLinux64 \
--provider-strategy aws
Build Options
| Flag | Default | Description |
|---|---|---|
--unity-version | auto | Unity 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-path | build | Path where build artifacts are stored |
--build-method | (empty) | Custom static C# build method to invoke |
--custom-parameters | (empty) | Additional parameters for the Unity build |
--versioning | None | Versioning strategy: None, Semantic, Tag, Custom |
AWS Options
| Flag | Default | Description |
|---|---|---|
--aws-stack-name | game-ci | CloudFormation stack name for shared resources |
--container-cpu | 1024 | CPU units for the Fargate task (1024 = 1 vCPU) |
--container-memory | 3072 | Memory 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
| Flag | Default | Description |
|---|---|---|
--kube-config | (empty) | Base64-encoded kubeconfig file contents |
--kube-volume | (empty) | Name of the persistent volume to use |
--kube-volume-size | 5Gi | Size 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
| Flag | Default | Description |
|---|---|---|
--cache-key | (empty) | Key used to scope cache entries |
Workspace Options
| Flag | Default | Description |
|---|---|---|
--clone-depth | 50 | Git clone depth (use 0 for full clone) |
Execution Options
| Flag | Default | Description |
|---|---|---|
--watch-to-end | true | Follow build logs until completion |
--allow-dirty-build | false | Allow builds from dirty (uncommitted changes) branches |
--skip-activation | false | Skip 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"
| Flag | Default | Description |
|---|---|---|
--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
- Getting Started - installation and first build
- Build Command - local Docker builds
- API Reference - full parameter reference
- Providers - provider-specific setup guides