Skip to main content
Version: v4 (current)

Remote Jobs

game-ci remote run schedules a provider-backed engine job. Providers can run standard builds, test workflows, custom engine commands, or a fully custom job definition.

game-ci remote run [projectPath] --provider-strategy <strategy>

game-ci remote build remains available as a compatibility alias, but new workflows should use remote run so the command name matches the broader job model.

The CLI owns the high-level command shape. Providers own infrastructure-specific options and job execution behavior.

Orchestrator Plugin

The Orchestrator is the default provider backend for remote execution. Load it as a CLI plugin:

game-ci \
--plugin @game-ci/orchestrator-plugin \
remote run ./my-unity-project \
--provider-strategy local-docker \
--target-platform StandaloneLinux64

Available provider strategies from the Orchestrator plugin include:

StrategyDescription
local-dockerRun the job in Docker on the current machine.
local-systemRun directly on the current machine.
awsRun on AWS ECS/Fargate.
k8sRun as a Kubernetes job.
gcp-cloud-runRun on Google Cloud Run.
azure-aciRun on Azure Container Instances.
github-actionsDispatch to a GitHub Actions workflow.
gitlab-ciTrigger a GitLab CI pipeline.
remote-powershellRun on a remote Windows host over PowerShell.
ansibleRun through an Ansible inventory and playbook.
cliDelegate to a custom provider executable.

Local Docker

game-ci \
--plugin @game-ci/orchestrator-plugin \
remote run ./my-unity-project \
--provider-strategy local-docker \
--target-platform StandaloneLinux64

Use this when you want Orchestrator behavior, such as provider hooks and workspace services, without starting with a cloud account.

AWS

export AWS_PROFILE=my-profile
export AWS_DEFAULT_REGION=us-east-1

game-ci \
--plugin @game-ci/orchestrator-plugin \
remote run ./my-unity-project \
--provider-strategy aws \
--target-platform StandaloneLinux64 \
--container-cpu 2048 \
--container-memory 8192

Common AWS options:

OptionDefaultDescription
--regioneu-west-2Cloud provider region.
--aws-stack-namegame-ciCloudFormation stack name.
--container-cpu1024Container CPU units.
--container-memory3072Container memory in MB.
--aws-use-spotfalseUse Spot capacity.
--aws-spot-fallbacktrueFall back to on-demand capacity.
--aws-use-ephemeral-storagefalseUse ECS ephemeral storage.
--aws-ephemeral-storage-size25Ephemeral storage size in GB.

The AWS provider uses the standard AWS credential chain, including environment variables, shared profiles, SSO sessions, and runner roles.

Kubernetes

game-ci \
--plugin @game-ci/orchestrator-plugin \
remote run ./my-unity-project \
--provider-strategy k8s \
--target-platform StandaloneLinux64 \
--kube-config "$KUBE_CONFIG_BASE64" \
--kube-volume-size 25Gi

Common Kubernetes options:

OptionDefaultDescription
--kube-configemptyKubeconfig content or path.
--kube-volumeemptyExisting persistent volume name.
--kube-volume-size25GiPersistent volume size.
--kube-storage-classemptyKubernetes storage class.
--container-namespacedefaultKubernetes namespace.

Custom Jobs

Use --custom-job when the provider should run commands that do not map to a built-in engine build or test command.

game-ci \
--plugin @game-ci/orchestrator-plugin \
remote run ./my-godot-project \
--provider-strategy local-docker \
--custom-job '- name: godot-export
image: barichello/godot-ci:4.3
commands: |
godot --headless --export-release "Linux/X11" /build/output/game'

Provider Executables

Custom providers can also be exposed through an executable that speaks the Orchestrator CLI provider protocol. Load the executable as a plugin and select the generated provider strategy:

game-ci \
--plugin executable:./my-provider \
remote run ./my-project \
--provider-strategy cli-protocol

For protocol details, see CLI provider protocol.

Configuration Files

Remote jobs can load the provider plugin and common options from .game-ci.yml:

cliOptions:
plugins:
- '@game-ci/orchestrator-plugin'
providerStrategy: local-docker
targetPlatform: StandaloneLinux64

Then the command can stay short:

game-ci remote run ./my-project

Provider-specific options are registered by the loaded plugin, so run with --help after loading the plugin to inspect the exact option set available in your installed version.