170 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			170 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| name: Unity Actions
 | |
| 
 | |
| on:
 | |
|   pull_request: {}
 | |
|   push: {}
 | |
| 
 | |
| 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
 |