actions-marketplace-validations/Unity - Builder

Build Unity projects for different platforms.

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Activelast commit Mar 28, 2026
License
MIT

Pinned Snippet

workflow.ymlSHA-pinned
uses: actions-marketplace-validations/game-ci_unity-builder@4a7fc08e6344299761acd5293b086f920664bd4d # no releases — HEAD as of 2026-07-13

tags can be moved; commit SHAs can't. why a SHA?

namedescriptionrequireddefault
targetPlatformPlatform that the build should target.yes""
unityVersionVersion of unity to use for building the project. Use "auto" to get from your ProjectSettings/ProjectVersion.txtnoauto
customImageSpecific docker image that should be used for building the projectno""
projectPathPath to the project to be built, relative to the repository root.no""
buildProfilePath to the build profile to activate, relative to the project root.no""
buildNameName of the build. Should not include a file extension.no""
buildsPathPath where the builds should be stored.no""
buildMethodPath to a Namespace.Class.StaticMethod to run to perform the build.no""
manualExitSuppresses `-quit`. Exit your build method using `EditorApplication.Exit(0)` instead.no""
enableGpuLaunches unity without specifying `-nographics`.no""
customParametersCustom parameters to configure the build.no""
versioningThe versioning scheme to use when building the projectnoSemantic
versionThe version, when used with the "Custom" versioning schemeno""
androidVersionCodeThe android versionCodeno""
androidExportTypeThe android export type. Should be androidPackage for apk, androidAppBundle for aab, or androidStudioProject for an android studio project.noandroidPackage
androidKeystoreNameThe android keystoreNameno""
androidKeystoreBase64The base64 contents of the android keystore fileno""
androidKeystorePassThe android keystorePassno""
androidKeyaliasNameThe android keyaliasNameno""
androidKeyaliasPassThe android keyaliasPassno""
androidTargetSdkVersionThe android target API level.no""
androidSymbolTypeThe android symbol type to export. Should be "none", "public" or "debugging".nonone
sshAgentSSH Agent path to forward to the containerno""
sshPublicKeysDirectoryPathPath to a directory containing SSH public keys to forward to the container.no""
gitPrivateToken[Orchestrator] Github private token to pull from githubno""
githubOwner[Orchestrator] GitHub owner name or organization/team nameno""
runAsHostUserWhether to run as a user that matches the host system or the default root container user. Only applicable to Linux hosts and containers. This is useful for fixing permission errors on Self-Hosted runners.nofalse
chownFilesToUser and optionally group (user or user:group or uid:gid) to give ownership of the resulting build artifactsno""
dockerCpuLimitNumber of CPU cores to assign the docker container. Defaults to all available cores on all platforms.no""
dockerMemoryLimitAmount of memory to assign the docker container. Defaults to 95% of total system memory rounded down to the nearest megabyte on Linux and 80% on Windows. On unrecognized platforms, defaults to 75% of total system memory. To manually specify a value, use the format <number><unit>, where unit is either m or g. ie: 512m = 512 megabytesno""
dockerIsolationModeIsolation mode to use for the docker container. Can be one of process, hyperv, or default. Default will pick the default mode as described by Microsoft where server versions use process and desktop versions use hyperv. Only applicable on Windowsnodefault
containerRegistryRepositoryContainer registry and repository to pull image from. Only applicable if customImage is not set.nounityci/editor
containerRegistryImageVersionContainer registry image version. Only applicable if customImage is not set.no3
allowDirtyBuild[Orchestrator] Allows the branch of the build to be dirty, and still generate the build.no""
postBuildSteps[Orchestrator] run a post build job in yaml format with the keys image, secrets (name, value object array), command stringno""
preBuildSteps[Orchestrator] Run a pre build job after the repository setup but before the build job (in yaml format with the keys image, secrets (name, value object array), command line string)no""
containerHookFiles[Orchestrator] Specify the names (by file name) of custom steps to run before or after orchestrator jobs, must match a yaml step file inside your repo in the folder .game-ci/steps/no""
customHookFiles[Orchestrator] Specify the names (by file name) of custom hooks to run before or after orchestrator jobs, must match a yaml step file inside your repo in the folder .game-ci/hooks/no""
customCommandHooks[Orchestrator] Specify custom commands and trigger hooks (injects commands into jobs)no""
customJob[Orchestrator] Run a custom job instead of the standard build automation for orchestrator (in yaml format with the keys image, secrets (name, value object array), command line string)no""
awsStackName[Orchestrator] The Cloud Formation stack name that must be setup before using this option.nogame-ci
providerStrategy[Orchestrator] Either local, k8s or aws can be used to run builds on a remote cluster. Additional parameters must be configured.nolocal
resourceTracking[Orchestrator] Enable resource tracking logs for disk usage and allocation summaries.nofalse
containerCpu[Orchestrator] Amount of CPU time to assign the remote build containerno""
containerMemory[Orchestrator] Amount of memory to assign the remote build containerno""
readInputFromOverrideList[Orchestrator] Comma separated list of input value names to read from "input override command"no""
readInputOverrideCommand[Orchestrator] Extend game ci by specifying a command to execute to pull input from external source e.g cloud provider secret managersno""
kubeConfig[Orchestrator] Supply a base64 encoded kubernetes config to run builds on kubernetes and stream logs until completion.no""
kubeVolume[Orchestrator] Supply a Persistent Volume Claim name to use for the Unity build.no""
kubeStorageClass[Orchestrator] Kubernetes storage class to use for orchestrator jobs, leave empty to install rook cluster.no""
kubeVolumeSize[Orchestrator] Amount of disc space to assign the Kubernetes Persistent Volumeno5Gi
cacheKey[Orchestrator] Cache key to indicate bucket for cacheno""
watchToEnd[Orchestrator] Whether or not to watch the build to the end. Can be used for especially long running jobs e.g imports or self-hosted ephemeral runners.notrue
cacheUnityInstallationOnMacWhether to cache the Unity hub and editor installation on MacOSnofalse
unityHubVersionOnMacThe version of Unity Hub to install on MacOS (e.g. 3.4.0). Defaults to latest available on brew if empty string or nothing is specified.no""
unityLicensingServerThe Unity licensing server address to use for activating Unity.no""
dockerWorkspacePathThe path to mount the workspace inside the docker container. For windows, leave out the drive letter. For example c:/github/workspace should be defined as /github/workspaceno/github/workspace
skipActivationSkip the activation/deactivation of Unity. This assumes Unity is already activated.nofalse
cloneDepth[Orchestrator] Specifies the depth of the git clone for the repository. Use 0 for full clone.no50
orchestratorRepoName[Orchestrator] Specifies the repo for the unity builder. Useful if you forked the repo for testing, features, or fixes.nogame-ci/unity-builder
namedescription
volumeThe Persistent Volume (PV) where the build artifacts have been stored by Kubernetes
buildVersionThe generated version used for the Unity build
androidVersionCodeThe generated versionCode used for the Android Unity build
engineExitCodeReturns the exit code from the build scripts. This code is 0 if the build was successful. If there was an error during activation, the code is from the activation step. If activation is successful, the code is from the project build step.