mirror of
https://github.com/game-ci/unity-builder.git
synced 2025-07-07 20:35:33 -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>
108 lines
3.0 KiB
Bash
108 lines
3.0 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
# Run in ACTIVATE_LICENSE_PATH directory
|
|
echo "Changing to \"$ACTIVATE_LICENSE_PATH\" directory."
|
|
pushd "$ACTIVATE_LICENSE_PATH"
|
|
|
|
if [[ -n "$UNITY_LICENSE" ]] || [[ -n "$UNITY_LICENSE_FILE" ]]; then
|
|
#
|
|
# PERSONAL LICENSE MODE
|
|
#
|
|
# This will activate Unity, using a license file
|
|
#
|
|
# Note that this is the ONLY WAY for PERSONAL LICENSES in 2020.
|
|
# * See for more details: https://gitlab.com/gableroux/unity3d-gitlab-ci-example/issues/5#note_72815478
|
|
#
|
|
# The license file can be acquired using `webbertakken/request-manual-activation-file` action.
|
|
echo "Requesting activation (personal license)"
|
|
|
|
# Set the license file path
|
|
FILE_PATH=UnityLicenseFile.ulf
|
|
|
|
if [[ -n "$UNITY_LICENSE" ]]; then
|
|
# Copy license file from Github variables
|
|
echo "$UNITY_LICENSE" | tr -d '\r' > $FILE_PATH
|
|
elif [[ -n "$UNITY_LICENSE_FILE" ]]; then
|
|
# Copy license file from file system
|
|
cat "$UNITY_LICENSE_FILE" | tr -d '\r' > $FILE_PATH
|
|
fi
|
|
|
|
# Activate license
|
|
ACTIVATION_OUTPUT=$(unity-editor \
|
|
-logFile /dev/stdout \
|
|
-quit \
|
|
-manualLicenseFile $FILE_PATH)
|
|
|
|
# Store the exit code from the verify command
|
|
UNITY_EXIT_CODE=$?
|
|
|
|
# The exit code for personal activation is always 1;
|
|
# Determine whether activation was successful.
|
|
#
|
|
# Successful output should include the following:
|
|
#
|
|
# "LICENSE SYSTEM [2020120 18:51:20] Next license update check is after 2019-11-25T18:23:38"
|
|
#
|
|
ACTIVATION_SUCCESSFUL=$(echo $ACTIVATION_OUTPUT | grep 'Next license update check is after' | wc -l)
|
|
|
|
# Set exit code to 0 if activation was successful
|
|
if [[ $ACTIVATION_SUCCESSFUL -eq 1 ]]; then
|
|
UNITY_EXIT_CODE=0
|
|
fi;
|
|
|
|
# Remove license file
|
|
rm -f $FILE_PATH
|
|
|
|
elif [[ -n "$UNITY_SERIAL" && -n "$UNITY_EMAIL" && -n "$UNITY_PASSWORD" ]]; then
|
|
#
|
|
# PROFESSIONAL (SERIAL) LICENSE MODE
|
|
#
|
|
# This will activate unity, using the activating process.
|
|
#
|
|
# Note: This is the preferred way for PROFESSIONAL LICENSES.
|
|
#
|
|
echo "Requesting activation (professional license)"
|
|
|
|
# Activate license
|
|
unity-editor \
|
|
-logFile /dev/stdout \
|
|
-quit \
|
|
-serial "$UNITY_SERIAL" \
|
|
-username "$UNITY_EMAIL" \
|
|
-password "$UNITY_PASSWORD"
|
|
|
|
# Store the exit code from the verify command
|
|
UNITY_EXIT_CODE=$?
|
|
|
|
else
|
|
#
|
|
# NO LICENSE ACTIVATION STRATEGY MATCHED
|
|
#
|
|
# This will exit since no activation strategies could be matched.
|
|
#
|
|
echo "License activation strategy could not be determined."
|
|
echo ""
|
|
echo "Visit https://game.ci/docs/github/getting-started for more"
|
|
echo "details on how to set up one of the possible activation strategies."
|
|
|
|
# Immediately exit as no UNITY_EXIT_CODE can be derrived.
|
|
exit 1;
|
|
|
|
fi
|
|
|
|
#
|
|
# Display information about the result
|
|
#
|
|
if [ $UNITY_EXIT_CODE -eq 0 ]; then
|
|
# Activation was a success
|
|
echo "Activation complete."
|
|
else
|
|
# Activation failed so exit with the code from the license verification step
|
|
echo "Unclassified error occured while trying to activate license."
|
|
echo "Exit code was: $UNITY_EXIT_CODE"
|
|
exit $UNITY_EXIT_CODE
|
|
fi
|
|
|
|
# Return to previous working directory
|
|
popd
|