mirror of
https://github.com/game-ci/unity-builder.git
synced 2025-07-04 12:25:19 -04:00

* Add caching for Unity Hub/Editor on MacOS. Add parameter to pin Unity Hub version on MacOS. Live output MacOS build log to console. Hid extraneous log outputs from git. Throw error when failures detected in log output. * Update pr template links * Add system to build Android Project. Update PR Template links. Fix missing types on functions. Cleanup mac-setup module installation * Switch to androidExportType instead of exportGoogleAndroidProject * Enforce minimum node version * Enforce node version minimum. Added yarn-audit-fix to dev dependencies and Updated package vulnerabilities. * Improve deprecation warning * Add android symbol type parameter. Change windows scripts to use $LastExitCode and not $?. Update tests. * Fix issues on android symbols for older unity versions. Change symbol default to public. Increase build test coverage of unity versions. * Remove 2018.1 from tests * Remove out variable declaration to support Unity 2018 in default build script. Remove <2019.3 versions of unity from windows builder as IL2CPP isn't supported until 2019.3. * Fix typo. Use reflection to set buildAppBundle as Unity 2018.2 doesn't support it * Add missing reflection using * Remove 2018-2019.3 unity versions from mac as they don't support IL2CPP. Fix app identifier for android in testproject * Fix android bundle id * Updated android identifier. Removed incompatible unity versions from tests. Add retry logic to windows as it seems to have licensing issues when so many runners start * Add timeout and continue on error
160 lines
5.7 KiB
PowerShell
160 lines
5.7 KiB
PowerShell
#
|
|
# 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
|
|
#
|
|
if ($Env:BUILD_METHOD)
|
|
{
|
|
# User has provided their own build method.
|
|
# Assume they also bring their own script.
|
|
Write-Output "$('Using build method "')$($Env:BUILD_METHOD)$('".')"
|
|
}
|
|
else
|
|
{
|
|
# 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
|
|
Get-ChildItem -Path $Env:UNITY_PROJECT_PATH\Assets\Editor -Recurse
|
|
}
|
|
|
|
#
|
|
# 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.')"
|
|
if (-Not (Test-Path -Path $Env:BUILD_PATH_FULL))
|
|
{
|
|
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 ""
|
|
|
|
# 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)
|
|
|
|
& "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 `
|
|
-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 `
|
|
-androidExportType $Env:ANDROID_EXPORT_TYPE `
|
|
-androidSymbolType $Env:ANDROID_SYMBOL_TYPE `
|
|
$customParametersArray `
|
|
-logfile | Out-Host
|
|
|
|
# Catch exit code
|
|
$Env:BUILD_EXIT_CODE=$LastExitCode
|
|
|
|
# Display results
|
|
if ($Env:BUILD_EXIT_CODE -eq 0)
|
|
{
|
|
Write-Output "Build Succeeded!"
|
|
} else
|
|
{
|
|
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 ""
|