name: 'Unity - Builder'
author: Webber Takken <webber@takken.io>
description: 'Build Unity projects for different platforms.'
inputs:
  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'
  targetPlatform:
    required: false
    default: ''
    description: 'Platform that the build should target.'
  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.'
  remoteBuildCluster:
    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.'
  awsStackName:
    default: 'game-ci'
    required: false
    description: 'The Cloud Formation stack name that must be setup before using this option.'
  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.'
  remoteBuildMemory:
    default: '800M'
    required: false
    description: 'Amount of memory to assign the remote build container'
  remoteBuildCpu:
    default: '0.25'
    required: false
    description: 'Amount of CPU time to assign the remote build container'
  kubeVolumeSize:
    default: '5Gi'
    required: false
    description: 'Amount of disc space to assign the Kubernetes Persistent Volume'
  githubToken:
    default: ''
    required: false
    description: 'GitHub token for cloning, only needed when kubeconfig is used.'
  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'
  customParameters:
    required: false
    default: ''
    description: >
      Custom parameters to configure the build.

      Parameters must start with a hyphen (-) and may be followed by a value (without hyphen).
      Parameters without a value will be considered booleans (with a value of true).
  allowDirtyBuild:
    required: false
    default: ''
    description: >
      Allows the branch of the build to be dirty, and still generate the build.

      Note that it is generally bad practice to modify your branch
      in a CI Pipeline. However there are exceptions where this might
      be needed. (use with care).
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'
