Ignore push on main branch, since the pull request should have already tested that change. Continue to run on pushes to all other branches.
172 lines
5.2 KiB
YAML
172 lines
5.2 KiB
YAML
name: Unity Actions
|
|
|
|
on:
|
|
pull_request: {}
|
|
push:
|
|
branches-ignore:
|
|
- main
|
|
|
|
env:
|
|
UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
|
|
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
|
|
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
|
|
PROJECT_PATH: .
|
|
|
|
jobs:
|
|
checklicense:
|
|
name: check if UNITY_LICENSE is set in github secrets
|
|
runs-on: ubuntu-latest
|
|
outputs:
|
|
is_unity_license_set: ${{ steps.checklicense_job.outputs.is_unity_license_set }}
|
|
steps:
|
|
- name: Check whether unity activation requests should be done
|
|
id: checklicense_job
|
|
run: |
|
|
echo "Skip activation job: ${{ env.UNITY_LICENSE != '' }}"
|
|
echo "::set-output name=is_unity_license_set::${{ env.UNITY_LICENSE != '' }}"
|
|
activation:
|
|
needs: [checklicense]
|
|
if: needs.checklicense.outputs.is_unity_license_set == 'false'
|
|
name: Request activation file 🔑
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
# Request manual activation file
|
|
- name: Request manual activation file
|
|
id: getManualLicenseFile
|
|
# https://github.com/game-ci/unity-request-activation-file/releases/
|
|
uses: game-ci/unity-request-activation-file@v2
|
|
# Upload artifact (Unity_v20XX.X.XXXX.alf)
|
|
- name: Expose as artifact
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: ${{ steps.getManualLicenseFile.outputs.filePath }}
|
|
path: ${{ steps.getManualLicenseFile.outputs.filePath }}
|
|
|
|
test:
|
|
needs: [checklicense]
|
|
if: needs.checklicense.outputs.is_unity_license_set == 'true'
|
|
name: Test all modes ✨
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
lfs: true
|
|
- uses: actions/cache@v3
|
|
with:
|
|
path: Library
|
|
key: Library-test-project-${{ matrix.targetPlatform }}
|
|
restore-keys: |
|
|
Library-test-project-
|
|
Library-
|
|
# https://github.com/game-ci/unity-test-runner/releases/
|
|
- uses: game-ci/unity-test-runner@v2
|
|
id: testRunner
|
|
with:
|
|
projectPath: ${{ env.PROJECT_PATH }}
|
|
testMode: all
|
|
customParameters: "-nographics"
|
|
- uses: actions/upload-artifact@v3
|
|
with:
|
|
name: Test results (all modes)
|
|
path: ${{ steps.testRunner.outputs.artifactsPath }}
|
|
|
|
build:
|
|
needs: [checklicense]
|
|
if: needs.checklicense.outputs.is_unity_license_set == 'true'
|
|
name: Build for ${{ matrix.targetPlatform }}
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
targetPlatform:
|
|
- StandaloneLinux64
|
|
- iOS
|
|
- Android
|
|
- WebGL
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
lfs: true
|
|
- uses: actions/cache@v3
|
|
with:
|
|
path: ${{ matrix.projectPath }}/Library
|
|
key: Library-${{ matrix.projectPath }}-${{ matrix.targetPlatform }}
|
|
restore-keys: |
|
|
Library-${{ matrix.projectPath }}-
|
|
Library-
|
|
# https://github.com/game-ci/unity-builder/releases/
|
|
- uses: game-ci/unity-builder@v2
|
|
with:
|
|
projectPath: ${{ env.PROJECT_PATH }}
|
|
targetPlatform: ${{ matrix.targetPlatform }}
|
|
- uses: actions/upload-artifact@v3
|
|
with:
|
|
name: Build-${{ matrix.targetPlatform }}
|
|
path: build
|
|
|
|
buildWithMac:
|
|
needs: [checklicense]
|
|
if: needs.checklicense.outputs.is_unity_license_set == 'true'
|
|
name: Build for ${{ matrix.targetPlatform }}
|
|
runs-on: macos-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
targetPlatform:
|
|
- StandaloneOSX
|
|
steps:
|
|
- name: Checkout Repository
|
|
uses: actions/checkout@v3
|
|
with:
|
|
lfs: true
|
|
- uses: actions/cache@v3
|
|
with:
|
|
path: ${{ matrix.projectPath }}/Library
|
|
key: Library-${{ matrix.projectPath }}-${{ matrix.targetPlatform }}
|
|
restore-keys: |
|
|
Library-${{ matrix.projectPath }}-
|
|
Library-
|
|
- uses: game-ci/unity-builder@v2
|
|
with:
|
|
projectPath: ${{ env.PROJECT_PATH }}
|
|
targetPlatform: ${{ matrix.targetPlatform }}
|
|
- name: Upload Build
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: Build-${{ matrix.targetPlatform }}
|
|
path: build
|
|
|
|
buildWithWindows:
|
|
needs: [build, buildWithMac]
|
|
if: needs.checklicense.outputs.is_unity_license_set == 'true'
|
|
name: Build for ${{ matrix.targetPlatform }}
|
|
runs-on: windows-2019
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
targetPlatform:
|
|
- StandaloneWindows
|
|
- StandaloneWindows64
|
|
- WSAPlayer
|
|
steps:
|
|
- name: Checkout Repository
|
|
uses: actions/checkout@v3
|
|
with:
|
|
lfs: true
|
|
- uses: actions/cache@v3
|
|
with:
|
|
path: ${{ matrix.projectPath }}/Library
|
|
key: Library-${{ matrix.projectPath }}-${{ matrix.targetPlatform }}
|
|
restore-keys: |
|
|
Library-${{ matrix.projectPath }}-
|
|
Library-
|
|
- uses: game-ci/unity-builder@v2
|
|
with:
|
|
projectPath: ${{ env.PROJECT_PATH }}
|
|
targetPlatform: ${{ matrix.targetPlatform }}
|
|
- name: Upload Build
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: Build-${{ matrix.targetPlatform }}
|
|
path: build
|