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

* Update cloud-runner-aws-pipeline.yml * Update cloud-runner-k8s-pipeline.yml * yarn build * yarn build * correct branch ref * correct branch ref passed to target repo * Create k8s-tests.yml * Delete k8s-tests.yml * correct branch ref passed to target repo * correct branch ref passed to target repo * Always describe AWS tasks for now, because unstable error handling * Remove unused tree commands * Use lfs guid sum * Simple override cache push * Simple override cache push and pull override to allow pure cloud storage driven caching * Removal of early branch (breaks lfs caching) * Remove unused tree commands * Update action.yml * Update action.yml * Support cache and input override commands as input + full support custom hooks * Increase k8s timeout * replace filename being appended for unknclear reason * cache key should not contain whitespaces * Always try and deploy rook for k8s * Apply k8s files for rook * Update action.yml * Apply k8s files for rook * Apply k8s files for rook * cache test and action description for kuber storage class * Correct test and implement dependency health check and start * GCP-secret run, cache key * lfs smudge set explicit and undo explicit * Run using external secret provider to speed up input * Update cloud-runner-aws-pipeline.yml * Add nodejs as build step dependency * Add nodejs as build step dependency * Cloud Runner Tests must be specified to capture logs from cloud runner for tests * Cloud Runner Tests must be specified to capture logs from cloud runner for tests * Refactor and cleanup - no async input, combined setup/build, removed github logs for cli runs * Refactor and cleanup - no async input, combined setup/build, removed github logs for cli runs * Refactor and cleanup - no async input, combined setup/build, removed github logs for cli runs * Refactor and cleanup - no async input, combined setup/build, removed github logs for cli runs * Refactor and cleanup - no async input, combined setup/build, removed github logs for cli runs * better defaults for new inputs * better defaults * merge latest * force build update * use npm n to update node in unity builder * use npm n to update node in unity builder * use npm n to update node in unity builder * correct new line * quiet zipping * quiet zipping * default secrets for unity username and password * default secrets for unity username and password * ls active directory before lfs install * Get cloud runner secrets from * Get cloud runner secrets from * Cleanup setup of default secrets * Various fixes * Cleanup setup of default secrets * Various fixes * Various fixes * Various fixes * Various fixes * Various fixes * Various fixes * Various fixes * Various fixes * Various fixes * Various fixes * Various fixes * Various fixes * Various fixes * Various fixes * AWS secrets manager support * less caching logs * default k8s storage class to pd-standard * more readable build commands * Capture aws exit code 1 reliably * Always replace /head from branch * k8s default storage class to standard-rwo * cleanup * further cleanup input * further cleanup input * further cleanup input * further cleanup input * further cleanup input * folder sizes to inspect caching * dir command for local cloud runner test * k8s wait for pending because pvc will not create earlier * prefer k8s standard storage * handle empty string as cloud runner cluster input * local-system is now used for cloud runner test implementation AND correctly unset test CLI input * local-system is now used for cloud runner test implementation AND correctly unset test CLI input * fix unterminated quote * fix unterminated quote * do not share build parameters in tests - in cloud runner this will cause conflicts with resouces of the same name * remove head and heads from branch prefix * fix reversed caching direction of cache-push * fixes * fixes * fixes * cachePull cli * fixes * fixes * fixes * fixes * fixes * order cache test to be first * order cache test to be first * fixes * populate cache key instead of using branch * cleanup cli * garbage-collect-aws cli can iterate over aws resources and cli scans all ts files * import cli methods * import cli files explicitly * import cli files explicitly * import cli files explicitly * import cli methods * import cli methods * import cli methods * import cli methods * import cli methods * import cli methods * import cli methods * import cli methods * import cli methods * import cli methods * import cli methods * import cli methods * import cli methods * import cli methods * import cli methods * import cli methods * import cli methods * import cli methods * import cli methods * import cli methods * import cli methods * import cli methods * import cli methods * import cli methods * import cli methods * import cli methods * import cli methods * import cli methods * import cli methods * import cli methods * import cli methods * import cli methods * import cli methods * import cli methods * import cli methods * import cli methods * import cli methods * log parameters in cloud runner parameter test * log parameters in cloud runner parameter test * log parameters in cloud runner parameter test * Cloud runner param test before caching because we have a fast local cache test now * Using custom build path relative to repo root rather than project root * aws-garbage-collect at end of pipeline * aws-garbage-collect do not actually delete anything for now - just list * remove some legacy du commands * Update cloud-runner-aws-pipeline.yml * log contents after cache pull and fix some scenarios with duplicate secrets * log contents after cache pull and fix some scenarios with duplicate secrets * log contents after cache pull and fix some scenarios with duplicate secrets * PR comments * Replace guid with uuid package * use fileExists lambda instead of stat to check file exists in caching * build failed results in core error message * Delete sample.txt * cloud-runner-system prefix changed to cloud-runner * Update cloud-runner-aws-pipeline.yml * remove du from caching, should run manually if interested in size, adds too much runtime to job to include by default * github ephemeral pipeline support * github ephemeral pipeline support * Merge remote-tracking branch 'origin/main' into cloud-runner-develop # Conflicts: # dist/index.js.map # src/model/cloud-runner/providers/aws/aws-task-runner.ts # src/model/cloud-runner/providers/aws/index.ts * garbage collection * garbage collection * self hosted runner pipeline * self hosted runner pipeline * self hosted runner pipeline * self hosted runner pipeline * self hosted runner pipeline * self hosted runner pipeline * self hosted runner pipeline * self hosted runner pipeline * self hosted runner pipeline * self hosted runner pipeline * ephemeral runner pipeline * ephemeral runner pipeline * ephemeral runner pipeline * download runner each time * download runner each time * download runner each time * garbage collect all older than 1d as part of cleanup * download runner each time * number container cpu and memory for aws * per provider container defaults * per provider container defaults * per provider container defaults * per provider container defaults * Skip printing size unless cloudRunnerIntegrationTests is true * transition zip usage in cache to uncompressed tar for speed * transition zip usage in cache to uncompressed tar for speed * transition zip usage in cache to uncompressed tar for speed * transition zip usage in cache to uncompressed tar for speed * per provider container defaults * per provider container defaults * per provider container defaults * per provider container defaults * per provider container defaults * per provider container defaults * per provider container defaults * per provider container defaults * baked in cloud formation template * baked in cloud formation template * baked in cloud formation template * baked in cloud formation template * baked in cloud formation template * baked in cloud formation template * baked in cloud formation template * baked in cloud formation template * better aws commands * better aws commands * parse number for cloud formation template * remove container resource defaults from actions yaml * remove container resource defaults from actions yaml * skip all input readers when cloud runner is local * prefer fs/promises * actually set aws cloud runner step as failure if unity build fails * default to 3gb of ram - webgl fails on 2
180 lines
6.2 KiB
YAML
180 lines
6.2 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.'
|
|
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: 'Whether to build .aab instead of .apk'
|
|
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.'
|
|
sshAgent:
|
|
required: false
|
|
default: ''
|
|
description: 'SSH Agent path to forward to the container'
|
|
gitPrivateToken:
|
|
required: false
|
|
default: ''
|
|
description: 'Github private token to pull from github'
|
|
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: 'Allows the branch of the build to be dirty, and still generate the build.'
|
|
postBuildSteps:
|
|
required: false
|
|
default: ''
|
|
description: 'run a post build job in yaml format with the keys image, secrets (name, value object array), command string'
|
|
preBuildSteps:
|
|
required: false
|
|
default: ''
|
|
description: '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)'
|
|
customJobHooks:
|
|
required: false
|
|
default: ''
|
|
description: 'Specify custom commands and trigger hooks (injects commands into jobs)'
|
|
customJob:
|
|
required: false
|
|
default: ''
|
|
description: '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: 'The Cloud Formation stack name that must be setup before using this option.'
|
|
cloudRunnerCluster:
|
|
default: 'local'
|
|
required: false
|
|
description: '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: 'Amount of CPU time to assign the remote build container'
|
|
cloudRunnerMemory:
|
|
default: ''
|
|
required: false
|
|
description: 'Amount of memory to assign the remote build container'
|
|
cachePushOverrideCommand:
|
|
default: ''
|
|
required: false
|
|
description: 'A command run every time a file is pushed to cache, formatted with input file path and remote cache path'
|
|
cachePullOverrideCommand:
|
|
default: ''
|
|
required: false
|
|
description: 'A command run every time before a file is being pulled from cache, formatted with request cache file and destination path'
|
|
readInputFromOverrideList:
|
|
default: ''
|
|
required: false
|
|
description: 'Comma separated list of input value names to read from "input override command"'
|
|
readInputOverrideCommand:
|
|
default: ''
|
|
required: false
|
|
description: '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: 'Supply a base64 encoded kubernetes config to run builds on kubernetes and stream logs until completion.'
|
|
kubeVolume:
|
|
default: ''
|
|
required: false
|
|
description: 'Supply a Persistent Volume Claim name to use for the Unity build.'
|
|
kubeStorageClass:
|
|
default: ''
|
|
required: false
|
|
description: 'Kubernetes storage class to use for cloud runner jobs, leave empty to install rook cluster.'
|
|
kubeVolumeSize:
|
|
default: '5Gi'
|
|
required: false
|
|
description: 'Amount of disc space to assign the Kubernetes Persistent Volume'
|
|
cacheKey:
|
|
default: ''
|
|
required: false
|
|
description: 'Cache key to indicate bucket for cache'
|
|
checkDependencyHealthOverride:
|
|
default: ''
|
|
required: false
|
|
description: 'Use to specify a way to check depdency services health to enable resilient self-starting jobs'
|
|
startDependenciesOverride:
|
|
default: ''
|
|
required: false
|
|
description: 'Use to specify a way to start depdency services health to enable resilient self-starting jobs'
|
|
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'
|
|
branding:
|
|
icon: 'box'
|
|
color: 'gray-dark'
|
|
runs:
|
|
using: 'node12'
|
|
main: 'dist/index.js'
|