/unity-setup

A GitHub action for setting up the Unity Game Engine for CI/CD workflows.

Primary LanguageTypeScriptMIT LicenseMIT

unity-setup

A GitHub Action for setting up the Unity Game Engine on GitHub Action Runners.

How to use

workflow

strategy:
  matrix:
      os: [ubuntu-latest, windows-latest, macos-latest]
      unity-versions:
        - 'in version file'
        - 2019.4.40f1
        - 2020.x
        - 2021.3.x
        - 2022.3
        - 6000
    include:
      - os: ubuntu-latest
        build-targets: StandaloneLinux64, Android, iOS
        modules: linux-server
      - os: windows-latest
        build-targets: StandaloneWindows64, Android, WSAPlayer
        modules: windows-server
      - os: macos-13
        build-targets: StandaloneOSX, Android, iOS
        modules: mac-server
      - os: macos-latest
        build-targets: StandaloneOSX, Android, iOS, VisionOS
        modules: mac-server
steps:
  - uses: RageAgainstThePixel/unity-setup@v1
    with:
      version-file: 'path/to/your/ProjectSettings.ProjectVersion.txt'
      unity-version: ${{ matrix.unity-versions }} # overrides version in version-file
      build-targets: ${{ matrix.build-targets }}
      modules: ${{ matrix.modules }}

  - run: |
      echo "UNITY_HUB_PATH: '${{ env.UNITY_HUB_PATH }}'"
      echo "UNITY_EDITORS: '${{ env.UNITY_EDITORS }}'"
      echo "UNITY_EDITOR_PATH: '${{ env.UNITY_EDITOR_PATH }}'"
      echo "UNITY_PROJECT_PATH: '${{ env.UNITY_PROJECT_PATH }}'"

inputs

name description required
version-file Specify a path to search for the unity project version text file. Useful if there are multiple projects in a single repo. Pass None if creating a new project to skip file search. false
unity-version Specify the Unity version(s) to install. You must include the changeset! i.e 2019.4.13f1 (518737b1de84). This will override any version specified in the version-file! false
build-targets Specify the build targets to install for. Remaps to corresponding module. One or more of StandaloneWindows64 WSAPlayer StandaloneOSX iOS StandaloneLinux64 Android Lumin WebGL VisionOS. false
modules Modules to install with the editor. This list can be different per editor version. false
architecture Specify the architecture to install. Either x86_64 or arm64. false

outputs

  • UNITY_HUB_PATH: The path to the installed unity hub.
  • UNITY_PROJECT_PATH: The path to the Unity project.
  • UNITY_EDITOR_PATH: The path to the last installed version of Unity.
  • UNITY_EDITORS: A json object of each editor installation {"version":"path"}.