| 
									
										
										
										
											2022-01-25 21:18:15 +00:00
										 |  |  | # | 
					
						
							|  |  |  | # Set project path | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | $Env:UNITY_PROJECT_PATH="$Env:GITHUB_WORKSPACE\$Env:PROJECT_PATH" | 
					
						
							|  |  |  | Write-Output "$('Using project path "')$($Env:UNITY_PROJECT_PATH)$('".')" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # Display the name for the build, doubles as the output name | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Write-Output "$('Using build name "')$($Env:BUILD_NAME)$('".')" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # Display the build's target platform; | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Write-Output "$('Using build target "')$($Env:BUILD_TARGET)$('".')" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # Display build path and file | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Write-Output "$('Using build path "')$($Env:BUILD_PATH)$('" to save file "')$($Env:BUILD_FILE)$('".')" | 
					
						
							|  |  |  | $Env:BUILD_PATH_FULL="$Env:GITHUB_WORKSPACE\$Env:BUILD_PATH" | 
					
						
							|  |  |  | $Env:CUSTOM_BUILD_PATH="$Env:BUILD_PATH_FULL\$Env:BUILD_FILE" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # Set the build method, must reference one of: | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | #   - <NamespaceName.ClassName.MethodName> | 
					
						
							|  |  |  | #   - <ClassName.MethodName> | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # For example: `BuildCommand.PerformBuild` | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # The method must be declared static and placed in project/Assets/Editor | 
					
						
							|  |  |  | # | 
					
						
							| 
									
										
										
										
											2022-02-02 09:15:37 +00:00
										 |  |  | if ($Env:BUILD_METHOD) | 
					
						
							| 
									
										
										
										
											2022-01-25 21:18:15 +00:00
										 |  |  | { | 
					
						
							|  |  |  |     # User has provided their own build method. | 
					
						
							|  |  |  |     # Assume they also bring their own script. | 
					
						
							|  |  |  |     Write-Output "$('Using build method "')$($Env:BUILD_METHOD)$('".')" | 
					
						
							| 
									
										
										
										
											2022-02-02 09:15:37 +00:00
										 |  |  | } | 
					
						
							|  |  |  | else | 
					
						
							| 
									
										
										
										
											2022-01-25 21:18:15 +00:00
										 |  |  | { | 
					
						
							|  |  |  |     # User has not provided their own build command. | 
					
						
							|  |  |  |     # | 
					
						
							|  |  |  |     # Use the script from this action which builds the scenes that are enabled in | 
					
						
							|  |  |  |     # the project. | 
					
						
							|  |  |  |     # | 
					
						
							|  |  |  |     Write-Output "Using built-in build method." | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # Create Editor directory if it does not exist | 
					
						
							|  |  |  |     if(-Not (Test-Path -Path $Env:UNITY_PROJECT_PATH\Assets\Editor)) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         # We use -Force to suppress output, doesn't overwrite anything | 
					
						
							|  |  |  |         New-Item -ItemType Directory -Force -Path $Env:UNITY_PROJECT_PATH\Assets\Editor | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # Copy the build script of Unity Builder action | 
					
						
							|  |  |  |     Copy-Item -Path "c:\UnityBuilderAction" -Destination $Env:UNITY_PROJECT_PATH\Assets\Editor -Recurse | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # Set the Build method to that of UnityBuilder Action | 
					
						
							|  |  |  |     $Env:BUILD_METHOD="UnityBuilderAction.Builder.BuildProject" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # Verify recursive paths | 
					
						
							| 
									
										
										
										
											2022-02-02 09:15:37 +00:00
										 |  |  |     Get-ChildItem -Path $Env:UNITY_PROJECT_PATH\Assets\Editor -Recurse | 
					
						
							| 
									
										
										
										
											2022-01-25 21:18:15 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # Pre-build debug information | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Write-Output "" | 
					
						
							|  |  |  | Write-Output "###########################" | 
					
						
							|  |  |  | Write-Output "#    Custom parameters    #" | 
					
						
							|  |  |  | Write-Output "###########################" | 
					
						
							|  |  |  | Write-Output "" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Write-Output "$('"')$($Env:CUSTOM_PARAMETERS)$('"')" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Write-Output "" | 
					
						
							|  |  |  | Write-Output "###########################" | 
					
						
							|  |  |  | Write-Output "#    Current build dir    #" | 
					
						
							|  |  |  | Write-Output "###########################" | 
					
						
							|  |  |  | Write-Output "" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Write-Output "$('Creating "')$($Env:BUILD_PATH_FULL)$('" if it does not exist.')" | 
					
						
							| 
									
										
										
										
											2022-02-02 09:15:37 +00:00
										 |  |  | if (-Not (Test-Path -Path $Env:BUILD_PATH_FULL)) | 
					
						
							| 
									
										
										
										
											2022-01-25 21:18:15 +00:00
										 |  |  | { | 
					
						
							|  |  |  |     mkdir "$Env:BUILD_PATH_FULL" | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | Get-ChildItem $Env:BUILD_PATH_FULL | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Write-Output "" | 
					
						
							|  |  |  | Write-Output "###########################" | 
					
						
							|  |  |  | Write-Output "#    Project directory    #" | 
					
						
							|  |  |  | Write-Output "###########################" | 
					
						
							|  |  |  | Write-Output "" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Get-ChildItem $Env:UNITY_PROJECT_PATH | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # Build | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Write-Output "" | 
					
						
							|  |  |  | Write-Output "###########################" | 
					
						
							|  |  |  | Write-Output "#    Building project     #" | 
					
						
							|  |  |  | Write-Output "###########################" | 
					
						
							|  |  |  | Write-Output "" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-10-31 10:12:56 +00:00
										 |  |  | # If $Env:CUSTOM_PARAMETERS contains spaces and is passed directly on the command line to Unity, powershell will wrap it | 
					
						
							|  |  |  | # in double quotes.  To avoid this, parse $Env:CUSTOM_PARAMETERS into an array, while respecting any quotations within the string. | 
					
						
							|  |  |  | $_, $customParametersArray = Invoke-Expression('Write-Output -- "" ' + $Env:CUSTOM_PARAMETERS) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-01-25 21:18:15 +00:00
										 |  |  | & "C:\Program Files\Unity\Hub\Editor\$Env:UNITY_VERSION\Editor\Unity.exe" -quit -batchmode -nographics ` | 
					
						
							|  |  |  |                                                                           -projectPath $Env:UNITY_PROJECT_PATH ` | 
					
						
							|  |  |  |                                                                           -executeMethod $Env:BUILD_METHOD ` | 
					
						
							|  |  |  |                                                                           -buildTarget $Env:BUILD_TARGET ` | 
					
						
							|  |  |  |                                                                           -customBuildTarget $Env:BUILD_TARGET ` | 
					
						
							|  |  |  |                                                                           -customBuildPath $Env:CUSTOM_BUILD_PATH ` | 
					
						
							|  |  |  |                                                                           -buildVersion $Env:VERSION ` | 
					
						
							| 
									
										
										
										
											2022-09-16 20:12:28 +00:00
										 |  |  |                                                                           -androidVersionCode $Env:ANDROID_VERSION_CODE ` | 
					
						
							|  |  |  |                                                                           -androidKeystoreName $Env:ANDROID_KEYSTORE_NAME ` | 
					
						
							|  |  |  |                                                                           -androidKeystorePass $Env:ANDROID_KEYSTORE_PASS ` | 
					
						
							|  |  |  |                                                                           -androidKeyaliasName $Env:ANDROID_KEYALIAS_NAME ` | 
					
						
							|  |  |  |                                                                           -androidKeyaliasPass $Env:ANDROID_KEYALIAS_PASS ` | 
					
						
							|  |  |  |                                                                           -androidTargetSdkVersion $Env:ANDROID_TARGET_SDK_VERSION ` | 
					
						
							| 
									
										
										
										
											2022-10-31 10:12:56 +00:00
										 |  |  |                                                                           $customParametersArray ` | 
					
						
							| 
									
										
										
										
											2022-01-25 21:18:15 +00:00
										 |  |  |                                                                           -logfile | Out-Host | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Catch exit code | 
					
						
							|  |  |  | $Env:BUILD_EXIT_CODE=$? | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Display results | 
					
						
							| 
									
										
										
										
											2022-02-02 09:15:37 +00:00
										 |  |  | if ($Env:BUILD_EXIT_CODE -eq 0) | 
					
						
							| 
									
										
										
										
											2022-01-25 21:18:15 +00:00
										 |  |  | { | 
					
						
							|  |  |  |     Write-Output "Build Succeeded!" | 
					
						
							| 
									
										
										
										
											2022-02-02 09:15:37 +00:00
										 |  |  | } else | 
					
						
							| 
									
										
										
										
											2022-01-25 21:18:15 +00:00
										 |  |  | { | 
					
						
							|  |  |  |     Write-Output "$('Build failed, with exit code ')$($Env:BUILD_EXIT_CODE)$('"')" | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # TODO: Determine if we need to set permissions on any files | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # Results | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Write-Output "" | 
					
						
							|  |  |  | Write-Output "###########################" | 
					
						
							|  |  |  | Write-Output "#       Build output      #" | 
					
						
							|  |  |  | Write-Output "###########################" | 
					
						
							|  |  |  | Write-Output "" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Get-ChildItem $Env:BUILD_PATH_FULL | 
					
						
							|  |  |  | Write-Output "" |