Skip to main content
Version: v4 (current)

API Reference

Configuration

You can specify input parameters via any of the following methods.

  • GitHub Action with See "Getting Started" examples.
  • Command Line You can specify input parameters via command line.
  • Environment Variables You can specify input parameters via environment variables.
  • Configuration Override Advanced Topics / Overrides

Modes

Orchestrator can accept a parameter to run a specific mode, by default cli-build is run.

cli-build

runs an orchestrator build

list-resources

lists active resources

list-workflow

lists running workflows

watch

follows logs of a running workflow

garbage-collect

runs garbage collection

- cache-push
- cache-pull

Cache commands to push and pull from the local caching directory. Used in orchestrator workflows. Uses cachePullFrom and cachePushTo parameters.

- hash (hash folder contents recursively)
- print-input (prints all input parameters)

Utility commands

- remote-cli-pre-build (sets up a repository, usually before a game-ci build)
- remote-cli-post-build (pushes to LFS and Library cache)

Commands called during orchestrator workflows before/after a build.

Common Parameters

Git synchronization parameters

gitPrivateToken (should be a GitHub access token with permission to get repositories)

Used to authenticate remote job's access to repository. Also used for LFS file pulling if GIT_PRIVATE_TOKEN is not set separately.

- GITHUB_REPOSITORY
- GITHUB_REF || branch || GitSHA

Used to synchronize the repository to the Orchestrator job. If parameters are not provided, will attempt to read them from current directory's git repo (e.g branch, commit SHA, remote URL).

Orchestrator parameters

providerStrategy

Specifies the Cloud Provider to use for Orchestrator jobs. Accepted values: aws, k8s, local-docker, local.

- containerCpu
- containerMemory

Specifies the CPU and Memory resources to be used for cloud containers created by Orchestrator. (See: getting started section for more configuration options per provider.)

orchestratorBranch

Specifies the release branch of Orchestrator to use for remote containers. Accepted values: main (default), orchestrator-develop (latest/development).

cloneDepth

Specifies the depth of the git clone for the repository. Defaults to 50. Use 0 for a full clone.

Custom commands from files parameters

- containerHookFiles
- commandHookFiles
- commandHooks
- postBuildContainerHooks
- preBuildContainerHooks

Specifies the name of custom hook or step files to include in workflow. (Accepted Format: see "container hooks command hooks")

Custom commands from yaml parameters

customJob

Specifies a custom job to override default build workflow. (Accepted Format: see "advanced topics / custom job")

Configuration Override

readInputOverrideCommand

Read parameter from command line output, such as a secret manager. Must include a {0} to inject the name of the parameter to pull. Built-in presets: gcp-secret-manager, aws-secret-manager. (See: Configuration Override)

readInputFromOverrideList

Comma separated list of parameters to apply with readInputOverrideCommand. (See: Configuration Override)

Storage

storageProvider

Specifies the storage backend for caching and artifacts. Accepted values: s3 (default), rclone.

rcloneRemote

Configures the rclone remote storage endpoint. Required when using storageProvider: rclone.

AWS

awsStackName

Name of the persistent shared base stack, used to store artifacts and caching. Defaults to game-ci.

- awsEndpoint (base endpoint override for all AWS services)
- awsCloudFormationEndpoint
- awsEcsEndpoint
- awsKinesisEndpoint
- awsCloudWatchLogsEndpoint
- awsS3Endpoint

Optional AWS service endpoint overrides. Useful for testing with LocalStack or other AWS-compatible services.

K8s

- kubeConfig (base64 encoded kubernetes config)
- kubeVolume
- kubeVolumeSize (default: 5Gi)
- kubeStorageClass

Override name of persistent volume used, size of volume and storage class used.

Caching

cacheKey

Defaults to branch name. Defines the scope for sharing cache entries.

Utility

- orchestratorDebug (Debug logging for Orchestrator)
- resourceTracking (Enable resource tracking logs for disk usage summaries)
- useLargePackages (Any packages in manifest.json containing phrase "LargePackage" will be
redirected to a shared folder for all builds sharing a cache key)
- useSharedBuilder (Use a shared clone of Game-CI, saves some storage space and can be used if
you're using one release branch of Orchestrator)
- useCompressionStrategy (Use Lz4 compression for cache and build artifacts. Enabled by default)
- watchToEnd (Whether to watch the build to the end, default: true)
- asyncOrchestrator (Run in async mode, returns immediately without waiting for build completion)

Retained Workspace

- maxRetainedWorkspaces

See: Advanced Topics / Retained Workspaces, enables caching entire project folder.

Garbage Collection

- garbageMaxAge (Maximum age in hours before resources are cleaned up, default: 24)

Command Line Only Parameters

- populateOverride
- cachePushFrom
- cachePushTo
- artifactName
- select

Other Environment Variables

- USE_IL2CPP (Set to `false`)

External Links

All accepted parameters given here with a description: https://github.com/game-ci/unity-builder/blob/main/action.yml