136 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			YAML
		
	
	
			
		
		
	
	
			136 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			YAML
		
	
	
| name: Builds - Windows
 | |
| 
 | |
| on:
 | |
|   workflow_dispatch:
 | |
|   push:
 | |
|     branches:
 | |
|       - main
 | |
| 
 | |
| concurrency:
 | |
|   group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
 | |
|   cancel-in-progress: true
 | |
| 
 | |
| jobs:
 | |
|   buildForAllPlatformsWindows:
 | |
|     name: ${{ matrix.targetPlatform }} on ${{ matrix.unityVersion }}
 | |
|     runs-on: windows-2019
 | |
|     strategy:
 | |
|       fail-fast: false
 | |
|       matrix:
 | |
|         projectPath:
 | |
|           - test-project
 | |
|         unityVersion:
 | |
|           - 2019.3.15f1 # Minimum version for IL2CPP
 | |
|           - 2019.4.40f1
 | |
|           - 2020.1.17f1
 | |
|           - 2020.2.7f1
 | |
|           - 2020.3.44f1
 | |
|           - 2021.3.18f1 # 2021.1 and 2021.2 seem to have IL2CPP issues
 | |
|           - 2022.1.24f1
 | |
|           - 2022.2.6f1
 | |
|         targetPlatform:
 | |
|           - StandaloneWindows64 # Build a Windows 64-bit standalone.
 | |
|           - StandaloneWindows # Build a Windows 32-bit standalone.
 | |
|           - WSAPlayer # Build a UWP App
 | |
|           - tvOS # Build an Apple TV XCode project
 | |
| 
 | |
|     steps:
 | |
|       ###########################
 | |
|       #         Checkout        #
 | |
|       ###########################
 | |
|       - uses: actions/checkout@v3
 | |
|         with:
 | |
|           lfs: true
 | |
| 
 | |
|       ###########################
 | |
|       #          Cache          #
 | |
|       ###########################
 | |
|       - uses: actions/cache@v3
 | |
|         with:
 | |
|           path: ${{ matrix.projectPath }}/Library
 | |
|           key: Library-${{ matrix.projectPath }}-windows-${{ matrix.targetPlatform }}
 | |
|           restore-keys: |
 | |
|             Library-${{ matrix.projectPath }}-windows-
 | |
|             Library-            
 | |
| 
 | |
|       ###########################
 | |
|       #  Set Scripting Backend  #
 | |
|       ###########################
 | |
|       - name: Set Scripting Backend To il2cpp
 | |
|         run: |
 | |
|           Move-Item -Path "./test-project/ProjectSettings/ProjectSettingsIl2cpp.asset" -Destination "./test-project/ProjectSettings/ProjectSettings.asset" -Force          
 | |
| 
 | |
|       ###########################
 | |
|       #          Build          #
 | |
|       ###########################
 | |
|       - name: Build
 | |
|         uses: ./
 | |
|         id: build-1
 | |
|         continue-on-error: true
 | |
|         timeout-minutes: 30
 | |
|         env:
 | |
|           UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
 | |
|           UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
 | |
|           UNITY_SERIAL: ${{ secrets.UNITY_SERIAL }}
 | |
|         with:
 | |
|           projectPath: ${{ matrix.projectPath }}
 | |
|           unityVersion: ${{ matrix.unityVersion }}
 | |
|           targetPlatform: ${{ matrix.targetPlatform }}
 | |
|           customParameters: -profile SomeProfile -someBoolean -someValue exampleValue
 | |
|           allowDirtyBuild: true
 | |
|       # We use dirty build because we are replacing the default project settings file above
 | |
| 
 | |
|       - name: Sleep for Retry
 | |
|         if: ${{ steps.build-1.outcome == 'failure' }}
 | |
|         run: |
 | |
|           Start-Sleep -s 120          
 | |
| 
 | |
|       - name: Build Retry 1
 | |
|         uses: ./
 | |
|         id: build-2
 | |
|         continue-on-error: true
 | |
|         timeout-minutes: 30
 | |
|         if: steps.build-1.outcome == 'failure'
 | |
|         env:
 | |
|           UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
 | |
|           UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
 | |
|           UNITY_SERIAL: ${{ secrets.UNITY_SERIAL }}
 | |
|         with:
 | |
|           projectPath: ${{ matrix.projectPath }}
 | |
|           unityVersion: ${{ matrix.unityVersion }}
 | |
|           targetPlatform: ${{ matrix.targetPlatform }}
 | |
|           customParameters: -profile SomeProfile -someBoolean -someValue exampleValue
 | |
|           allowDirtyBuild: true
 | |
|       # We use dirty build because we are replacing the default project settings file above
 | |
| 
 | |
|       - name: Sleep for Retry
 | |
|         if: ${{ steps.build-1.outcome == 'failure' && steps.build-2.outcome == 'failure' }}
 | |
|         run: |
 | |
|           Start-Sleep -s 240          
 | |
| 
 | |
|       - name: Build Retry 2
 | |
|         uses: ./
 | |
|         id: build-3
 | |
|         timeout-minutes: 30
 | |
|         if: ${{ steps.build-1.outcome == 'failure' && steps.build-2.outcome == 'failure' }}
 | |
|         env:
 | |
|           UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
 | |
|           UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
 | |
|           UNITY_SERIAL: ${{ secrets.UNITY_SERIAL }}
 | |
|         with:
 | |
|           projectPath: ${{ matrix.projectPath }}
 | |
|           unityVersion: ${{ matrix.unityVersion }}
 | |
|           targetPlatform: ${{ matrix.targetPlatform }}
 | |
|           customParameters: -profile SomeProfile -someBoolean -someValue exampleValue
 | |
|           allowDirtyBuild: true
 | |
|       # We use dirty build because we are replacing the default project settings file above
 | |
| 
 | |
|       ###########################
 | |
|       #          Upload         #
 | |
|       ###########################
 | |
|       - uses: actions/upload-artifact@v3
 | |
|         with:
 | |
|           name: Build Windows (${{ matrix.unityVersion }})
 | |
|           path: build
 | |
|           retention-days: 14
 |