API Reference
Configuration
You can specify input parameters via any of the following methods.
- GitHub Action
withSee "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