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

* Implemented logic for windows based docker builds. Moved dockerfiles and scripts to platform specific folders. * Add missing newline character * Add build-tests for windows and a unity project configured to output il2cpp * Add additional build targets (uwp and tvOS) Adjustments to build scripts to not require win10 sdk when not needed (tvOS) Platform-based prereq setup Setup image tags for the new platforms with errors if building on the wrong base os Rename test-project-il2cpp to test-project-windows to be used for all windows based project building (IL2CPP backend selected instead of mono) Fix tests to be platform based * Update dist/platforms/windows/steps/return_license.ps1 Co-authored-by: Webber Takken <webber.nl@gmail.com> * Update src/model/docker.ts Co-authored-by: Webber Takken <webber.nl@gmail.com> * Update src/model/docker.ts Co-authored-by: Webber Takken <webber.nl@gmail.com> * Update src/model/docker.ts Co-authored-by: Webber Takken <webber.nl@gmail.com> * Fix outdated repository and homepage links in dockerfiles * Fix comment style and rename validateWindowsPrereqs to validateWindowsPlatformRequirements * Remove redundant comment * Remove windows unity test project, add ProjectSettings for the il2cpp backend, and add logic to replace the projectsettings file with the il2cpp one on windows test builds. * Fix action.test.ts to accept windows as a base platform * Fix camelcase for wsaPlayer * Switch from add to copy in windows dockerfile * Change slash direction * Switch ADD to COPY to conform with best practices, change ls to dir on windows dockerfile * Improve error message for unset UNITY_EMAIL and UNITY_PASSWORD * Further improve missing email and password error. Remove temppaths being mounted to docker image * Add debug statement. TODO: Remove these * Add more debug * Explicitly pass in unity email to docker run * Remove debug and fix environment variables for activation/deactivation scripts * Prevent Unity serial from leaking to console * Debug folder listings * More debug print dirs * fix debug print path * fix reg export command * Remove debug directory listings and try setSecret to mask serial * Update src/model/action.ts Co-authored-by: Webber Takken <webber.nl@gmail.com> * Update src/model/docker.ts Co-authored-by: Webber Takken <webber.nl@gmail.com> * Update src/model/image-tag.ts Co-authored-by: David Finol <davidmfinol@gmail.com> * Update .github/workflows/build-tests.yml Co-authored-by: David Finol <davidmfinol@gmail.com> * Move platform validation and setup out of docker and into its own layer, remove branching on docker run command * Fix test failure due to missing license * Fix camelCase and duplicate variables * Fix lint issues and make paths more understandable * Fix typo in build-tests.yml * Fix move command in build-tests.yml * Different method to force move file * Fix missing quote and backslash * Pass unity email and password to builder action for windows build tests * Push serial to windows test builds * Make windows build tests only run on push to main Co-authored-by: Webber Takken <webber.nl@gmail.com> Co-authored-by: David Finol <davidmfinol@gmail.com>
148 lines
4.4 KiB
PowerShell
148 lines
4.4 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 $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 ""
|
|
|
|
& "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 `
|
|
$Env:CUSTOM_PARAMETERS `
|
|
-logfile | Out-Host
|
|
|
|
# Catch exit code
|
|
$Env:BUILD_EXIT_CODE=$?
|
|
|
|
# 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 ""
|