mirror of
https://github.com/game-ci/unity-builder.git
synced 2025-07-04 12:25:19 -04:00

* Add caching for Unity Hub/Editor on MacOS. Add parameter to pin Unity Hub version on MacOS. Live output MacOS build log to console. Hid extraneous log outputs from git. Throw error when failures detected in log output. * Update pr template links * Add system to build Android Project. Update PR Template links. Fix missing types on functions. Cleanup mac-setup module installation * Switch to androidExportType instead of exportGoogleAndroidProject * Enforce minimum node version * Enforce node version minimum. Added yarn-audit-fix to dev dependencies and Updated package vulnerabilities. * Improve deprecation warning * Add android symbol type parameter. Change windows scripts to use $LastExitCode and not $?. Update tests. * Fix issues on android symbols for older unity versions. Change symbol default to public. Increase build test coverage of unity versions. * Remove 2018.1 from tests * Remove out variable declaration to support Unity 2018 in default build script. Remove <2019.3 versions of unity from windows builder as IL2CPP isn't supported until 2019.3. * Fix typo. Use reflection to set buildAppBundle as Unity 2018.2 doesn't support it * Add missing reflection using * Remove 2018-2019.3 unity versions from mac as they don't support IL2CPP. Fix app identifier for android in testproject * Fix android bundle id * Updated android identifier. Removed incompatible unity versions from tests. Add retry logic to windows as it seems to have licensing issues when so many runners start * Add timeout and continue on error
223 lines
7.6 KiB
YAML
223 lines
7.6 KiB
YAML
name: 'Unity - Builder'
|
|
author: Webber Takken <webber@takken.io>
|
|
description: 'Build Unity projects for different platforms.'
|
|
inputs:
|
|
targetPlatform:
|
|
required: true
|
|
default: ''
|
|
description: 'Platform that the build should target.'
|
|
unityVersion:
|
|
required: false
|
|
default: 'auto'
|
|
description:
|
|
'Version of unity to use for building the project. Use "auto" to get from your ProjectSettings/ProjectVersion.txt'
|
|
customImage:
|
|
required: false
|
|
default: ''
|
|
description: 'Specific docker image that should be used for building the project'
|
|
projectPath:
|
|
required: false
|
|
default: ''
|
|
description: 'Relative path to the project to be built.'
|
|
buildName:
|
|
required: false
|
|
default: ''
|
|
description: 'Name of the build. Should not include a file extension.'
|
|
buildsPath:
|
|
required: false
|
|
default: ''
|
|
description: 'Path where the builds should be stored.'
|
|
buildMethod:
|
|
required: false
|
|
default: ''
|
|
description: 'Path to a Namespace.Class.StaticMethod to run to perform the build.'
|
|
customParameters:
|
|
required: false
|
|
default: ''
|
|
description: 'Custom parameters to configure the build.'
|
|
versioning:
|
|
required: false
|
|
default: 'Semantic'
|
|
description: 'The versioning scheme to use when building the project'
|
|
version:
|
|
required: false
|
|
default: ''
|
|
description: 'The version, when used with the "Custom" versioning scheme'
|
|
androidVersionCode:
|
|
required: false
|
|
default: ''
|
|
description: 'The android versionCode'
|
|
androidAppBundle:
|
|
required: false
|
|
default: 'false'
|
|
description: '[Deprecated] Use androidExportType instead. Whether to build .aab instead of .apk'
|
|
androidExportType:
|
|
required: false
|
|
description:
|
|
'The android export type. Should be androidPackage for apk, androidAppBundle for aab, or androidStudioProject for
|
|
an android studio project.'
|
|
androidKeystoreName:
|
|
required: false
|
|
default: ''
|
|
description: 'The android keystoreName'
|
|
androidKeystoreBase64:
|
|
required: false
|
|
default: ''
|
|
description: 'The base64 contents of the android keystore file'
|
|
androidKeystorePass:
|
|
required: false
|
|
default: ''
|
|
description: 'The android keystorePass'
|
|
androidKeyaliasName:
|
|
required: false
|
|
default: ''
|
|
description: 'The android keyaliasName'
|
|
androidKeyaliasPass:
|
|
required: false
|
|
default: ''
|
|
description: 'The android keyaliasPass'
|
|
androidTargetSdkVersion:
|
|
required: false
|
|
default: ''
|
|
description: 'The android target API level.'
|
|
androidSymbolType:
|
|
required: false
|
|
default: 'none'
|
|
description: 'The android symbol type to export. Should be "none", "public" or "debugging".'
|
|
sshAgent:
|
|
required: false
|
|
default: 'public'
|
|
description: 'SSH Agent path to forward to the container'
|
|
gitPrivateToken:
|
|
required: false
|
|
default: ''
|
|
description: '[CloudRunner] Github private token to pull from github'
|
|
githubOwner:
|
|
required: false
|
|
default: ''
|
|
description: '[CloudRunner] GitHub owner name or organization/team name'
|
|
chownFilesTo:
|
|
required: false
|
|
default: ''
|
|
description:
|
|
'User and optionally group (user or user:group or uid:gid) to give ownership of the resulting build artifacts'
|
|
allowDirtyBuild:
|
|
required: false
|
|
default: ''
|
|
description: '[CloudRunner] Allows the branch of the build to be dirty, and still generate the build.'
|
|
postBuildSteps:
|
|
required: false
|
|
default: ''
|
|
description:
|
|
'[CloudRunner] run a post build job in yaml format with the keys image, secrets (name, value object array),
|
|
command string'
|
|
preBuildSteps:
|
|
required: false
|
|
default: ''
|
|
description:
|
|
'[CloudRunner] 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)'
|
|
customStepFiles:
|
|
required: false
|
|
default: ''
|
|
description:
|
|
'[CloudRunner] Specify the names (by file name) of custom steps to run before or after cloud runner jobs, must
|
|
match a yaml step file inside your repo in the folder .game-ci/steps/'
|
|
customHookFiles:
|
|
required: false
|
|
default: ''
|
|
description:
|
|
'[CloudRunner] Specify the names (by file name) of custom hooks to run before or after cloud runner jobs, must
|
|
match a yaml step file inside your repo in the folder .game-ci/hooks/'
|
|
customJobHooks:
|
|
required: false
|
|
default: ''
|
|
description: '[CloudRunner] Specify custom commands and trigger hooks (injects commands into jobs)'
|
|
customJob:
|
|
required: false
|
|
default: ''
|
|
description:
|
|
'[CloudRunner] Run a custom job instead of the standard build automation for cloud runner (in yaml format with the
|
|
keys image, secrets (name, value object array), command line string)'
|
|
awsBaseStackName:
|
|
default: 'game-ci'
|
|
required: false
|
|
description: '[CloudRunner] The Cloud Formation stack name that must be setup before using this option.'
|
|
cloudRunnerCluster:
|
|
default: 'local'
|
|
required: false
|
|
description:
|
|
'[CloudRunner] Either local, k8s or aws can be used to run builds on a remote cluster. Additional parameters must
|
|
be configured.'
|
|
cloudRunnerCpu:
|
|
default: ''
|
|
required: false
|
|
description: '[CloudRunner] Amount of CPU time to assign the remote build container'
|
|
cloudRunnerMemory:
|
|
default: ''
|
|
required: false
|
|
description: '[CloudRunner] Amount of memory to assign the remote build container'
|
|
readInputFromOverrideList:
|
|
default: ''
|
|
required: false
|
|
description: '[CloudRunner] Comma separated list of input value names to read from "input override command"'
|
|
readInputOverrideCommand:
|
|
default: ''
|
|
required: false
|
|
description:
|
|
'[CloudRunner] Extend game ci by specifying a command to execute to pull input from external source e.g cloud
|
|
provider secret managers'
|
|
kubeConfig:
|
|
default: ''
|
|
required: false
|
|
description:
|
|
'[CloudRunner] Supply a base64 encoded kubernetes config to run builds on kubernetes and stream logs until
|
|
completion.'
|
|
kubeVolume:
|
|
default: ''
|
|
required: false
|
|
description: '[CloudRunner] Supply a Persistent Volume Claim name to use for the Unity build.'
|
|
kubeStorageClass:
|
|
default: ''
|
|
required: false
|
|
description:
|
|
'[CloudRunner] Kubernetes storage class to use for cloud runner jobs, leave empty to install rook cluster.'
|
|
kubeVolumeSize:
|
|
default: '5Gi'
|
|
required: false
|
|
description: '[CloudRunner] Amount of disc space to assign the Kubernetes Persistent Volume'
|
|
cacheKey:
|
|
default: ''
|
|
required: false
|
|
description: '[CloudRunner] Cache key to indicate bucket for cache'
|
|
watchToEnd:
|
|
default: 'true'
|
|
required: false
|
|
description:
|
|
'[CloudRunner] 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.'
|
|
cacheUnityInstallationOnMac:
|
|
default: 'false'
|
|
required: false
|
|
description: 'Whether to cache the Unity hub and editor installation on MacOS'
|
|
unityHubVersionOnMac:
|
|
default: ''
|
|
required: false
|
|
description:
|
|
'The 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.'
|
|
|
|
outputs:
|
|
volume:
|
|
description: 'The Persistent Volume (PV) where the build artifacts have been stored by Kubernetes'
|
|
buildVersion:
|
|
description: 'The generated version used for the Unity build'
|
|
androidVersionCode:
|
|
description: 'The generated versionCode used for the Android Unity build'
|
|
branding:
|
|
icon: 'box'
|
|
color: 'gray-dark'
|
|
runs:
|
|
using: 'node16'
|
|
main: 'dist/index.js'
|