name: 'Unity - Test runner'
author: Webber Takken <webber@takken.io>
description: 'Run tests for any Unity project.'
inputs:
  unityVersion:
    required: false
    default: 'auto'
    description: 'Version of unity to use for testing the project. Use "auto" to get from your ProjectSettings/ProjectVersion.txt. ⚠️ If testing a Unity Package, this field is required and cannot be set to "auto".'
  customImage:
    required: false
    default: ''
    description: 'Specific docker image that should be used for testing the project. If packageMode is true, this image must have jq installed.'
  projectPath:
    required: false
    description: 'Path to the Unity project or package to be tested.'
  customParameters:
    required: false
    description: 'Extra parameters to configure the Unity editor run.'
  testMode:
    required: false
    default: 'all'
    description: 'The type of tests to be run by the test runner.'
  coverageOptions:
    required: false
    default: 'generateAdditionalMetrics;generateHtmlReport;generateBadgeReport;dontClear'
    description: 'Optional coverage parameters for the -coverageOptions argument. To get coverage in Package Mode, pass assemblies from the package you want covered to the assemblyFilters option.'
  artifactsPath:
    required: false
    default: 'artifacts'
    description: 'Path where test artifacts should be stored.'
  useHostNetwork:
    required: false
    default: false
    description: 'Initialises Docker using the host network.'
  sshAgent:
    required: false
    default: ''
    description: 'SSH Agent path to forward to the container.'
  gitPrivateToken:
    required: false
    default: ''
    description: 'GitHub Private Access Token (PAT) to pull from GitHub.'
  githubToken:
    required: false
    default: ''
    description: 'Token to authorize access to the GitHub REST API. If provided, a check run will be created with the test results.'
  checkName:
    required: false
    default: 'Test Results'
    description: 'Name for the check run that is created when a github token is provided.'
  packageMode:
    required: false
    default: false
    description: 'Whether the tests are being run for a Unity package instead of a Unity project. If true, the action can only be run on Linux runners, and any custom docker image passed to this action must have `jq` installed. NOTE: may not work properly for packages with dependencies outside of the Unity Registry.'
  chownFilesTo:
    required: false
    default: ''
    description: 'User and optionally group (user or user:group or uid:gid) to give ownership of the resulting build artifacts'
  unityLicensingServer:
    required: false
    default: ''
    description: 'Url to a unity license server for acquiring floating licenses.'
outputs:
  artifactsPath:
    description: 'Path where the artifacts are stored.'
  coveragePath:
    description: 'Path where the code coverage results are stored.'
branding:
  icon: 'box'
  color: 'gray-dark'
runs:
  using: 'node16'
  main: 'dist/main.js'
  post: 'dist/post.js'
