An open API service indexing awesome lists of open source software.

https://github.com/kuler90/setup-unity

GitHub Action to download and install Unity on Ubuntu, macOS or Windows. Based on Unity Hub
https://github.com/kuler90/setup-unity

continuous-integration github-actions unity unity-hub

Last synced: 3 months ago
JSON representation

GitHub Action to download and install Unity on Ubuntu, macOS or Windows. Based on Unity Hub

Awesome Lists containing this project

README

          

# setup-unity


GitHub Actions status
GitHub Actions status
GitHub Actions status

GitHub Action to download and install Unity. Based on Unity Hub.

Works on Ubuntu, macOS and Windows.

## Inputs

### `unity-version`

Unity version to install. For example, `2019.4.9f1`. Project version will be used if not provided.

### `unity-version-changeset`

Unity version changeset. For example, `50fe8a171dd9`. Automatically parsed from Unity site if not provided.

### `unity-modules`

List of Unity modules (e.g. build support) to install. For example, `[ios, android, webgl]`.

Available modules can be found in the test workflows ([test-ubuntu](https://github.com/kuler90/setup-unity/blob/master/.github/workflows/test-ubuntu.yml), [test-macos](https://github.com/kuler90/setup-unity/blob/master/.github/workflows/test-macos.yml), [test-windows](https://github.com/kuler90/setup-unity/blob/master/.github/workflows/test-windows.yml)).

Also list of available modules can be found by execute ` -- --headless help` but result may contains wrong names.

### `unity-modules-child`

Automatically installs all child modules of selected modules. For example, `android-open-jdk` and `android-sdk-ndk-tools` for android. Default `true`.

### `project-path`

Path to Unity project. Used to find Unity version. Default `${{ github.workspace }}`.

### `install-path`

Path where the Unity editor will be installed.

### `self-hosted`

If true, avoid to invoke commands with sudo. Default `false`.

## Outputs

### `unity-version`

Unity version.

### `unity-path`

Unity executable path. Also set as an environment variable `UNITY_PATH`.

## Known issues

- Installing `android` module with childs modules may freeze on macOS. Recommended to use with [`timeout-minutes`](https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstepstimeout-minutes).
- Workflow may fail with `System.IO.IOException: No space left on device` on GitHub-hosted Ubuntu. Setting `install-path: /mnt` can fix the problem.

## Example usage

```yaml
- name: Checkout project
uses: actions/checkout@v2

- name: Setup Unity
uses: kuler90/setup-unity@v1
with:
unity-modules: android

- name: Activate Unity
uses: kuler90/activate-unity@v1
with:
unity-username: ${{ secrets.UNITY_USERNAME }}
unity-password: ${{ secrets.UNITY_PASSWORD }}
unity-authenticator-key: ${{ secrets.UNITY_AUTHENTICATOR_KEY }}

- name: Build Unity
uses: kuler90/build-unity@v1
with:
build-target: Android
build-path: ./build.apk
```