name: 'Unity - Test runner' author: Webber Takken 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.' sshPublicKeysDirectoryPath: required: false default: '' description: 'Path to a directory containing SSH public keys 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.' scopedRegistryUrl: required: false default: '' description: 'Scoped registry to use for resolving package dependencies. Only applicable if packageMode is true.' registryScopes: required: false default: '' description: 'Registry scopes to use for resolving package dependencies. Only applicable if packageMode is true. Required if scopedRegistry is set.' chownFilesTo: required: false default: '' description: 'User and optionally group (user or user:group or uid:gid) to give ownership of the resulting build artifacts' dockerCpuLimit: required: false default: '' description: 'Number of CPU cores to assign the docker container. Defaults to all available cores on all platforms.' dockerMemoryLimit: required: false default: '' description: 'Amount 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 , where unit is either m or g. ie: 512m = 512 megabytes' dockerIsolationMode: required: false default: 'default' description: 'Isolation 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 Windows' unityLicensingServer: required: false default: '' description: 'Url to a unity license server for acquiring floating licenses.' containerRegistryRepository: required: false default: 'unityci/editor' description: 'Container registry and repository to pull image from. Only applicable if customImage is not set.' containerRegistryImageVersion: required: false default: '3' description: 'Container registry image version. Only applicable if customImage is not set.' runAsHostUser: required: false default: 'false' description: 'Whether 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.' 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: 'node20' main: 'dist/main.js' post: 'dist/post.js'