Skip to content

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

License

Notifications You must be signed in to change notification settings

kuler90/setup-unity

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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, test-macos, test-windows).

Also list of available modules can be found by execute <unity-hub> -- --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.
  • 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

- 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