mirror of
https://github.com/game-ci/unity-builder.git
synced 2025-07-04 12:25:19 -04:00
93 lines
2.9 KiB
Bash
93 lines
2.9 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
# Try personal activation
|
|
if [[ -n "$UNITY_LICENSE" ]]; then
|
|
LICENSE_MODE="personal"
|
|
#
|
|
# PERSONAL LICENSE MODE
|
|
#
|
|
# This will activate Unity, using a license file
|
|
#
|
|
# Note that this is the ONLY WAY for PERSONAL LICENSES in 2019.
|
|
# * 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.
|
|
|
|
# Set the license file path
|
|
FILE_PATH=UnityLicenseFile.ulf
|
|
|
|
# Copy license file from Github variables
|
|
echo "$UNITY_LICENSE" | tr -d '\r' > $FILE_PATH
|
|
|
|
#
|
|
# Activate license
|
|
#
|
|
# This is expected to always exit with code 1 (both success and failure).
|
|
#
|
|
echo "Requesting activation"
|
|
ACTIVATION_OUTPUT=$(xvfb-run --auto-servernum --server-args='-screen 0 640x480x24' \
|
|
/opt/Unity/Editor/Unity \
|
|
-batchmode \
|
|
-nographics \
|
|
-logFile /dev/stdout \
|
|
-quit \
|
|
-manualLicenseFile $FILE_PATH)
|
|
# Convert to exit code 0 by echoing the current exit code.
|
|
echo $?
|
|
# Exit code is now 0
|
|
|
|
# TODO - remove debugging
|
|
echo $ACTIVATION_OUTPUT
|
|
echo $ACTIVATION_OUTPUT | grep 'config is NOT valid, switching to default'
|
|
echo $ACTIVATION_OUTPUT | grep 'config is NOT valid, switching to default' | wc -l
|
|
|
|
# TODO - Derive exit code by grepping success statement
|
|
UNITY_EXIT_CODE=$(echo $ACTIVATION_OUTPUT | grep 'config is NOT valid, switching to default' | wc -l)
|
|
|
|
# Remove license file
|
|
rm -f $FILE_PATH
|
|
|
|
# Try professional activation
|
|
elif [[ -n "$UNITY_SERIAL" && -n "$UNITY_EMAIL" && -n "$UNITY_PASSWORD" ]]; then
|
|
LICENSE_MODE="professional"
|
|
#
|
|
# PROFESSIONAL (SERIAL) LICENSE MODE
|
|
#
|
|
# This will activate unity, using the activating process.
|
|
#
|
|
# Note: This is the preferred way for PROFESSIONAL LICENSES.
|
|
#
|
|
|
|
xvfb-run --auto-servernum --server-args='-screen 0 640x480x24' \
|
|
/opt/Unity/Editor/Unity \
|
|
-batchmode \
|
|
-nographics \
|
|
-logFile /dev/stdout \
|
|
-quit \
|
|
-serial "$UNITY_SERIAL" \
|
|
-username "$UNITY_EMAIL" \
|
|
-password "$UNITY_PASSWORD"
|
|
|
|
# Store the exit code from the verify command
|
|
UNITY_EXIT_CODE=$?
|
|
|
|
# Exit since personal and professional modes failed
|
|
else
|
|
echo "No personal or professional licenses provided!"
|
|
echo "Please ensure you have setup one of these licensing methods:"
|
|
echo " - Personal: Set the UNITY_LICENSE environment variable."
|
|
echo " - Professional: Set the UNITY_EMAIL, UNITY_PASSWORD and UNITY_SERIAL environment variables."
|
|
echo "See https://github.com/webbertakken/unity-builder#usage for details."
|
|
exit 1;
|
|
fi
|
|
|
|
# Display information about the result
|
|
if [ $UNITY_EXIT_CODE -eq 0 ]; then
|
|
echo "Activation ($LICENSE_MODE) complete."
|
|
else
|
|
# Exit with the code from the license verification step
|
|
echo "Unclassified error occured while trying to activate ($LICENSE_MODE) license."
|
|
echo "Exit code was: $UNITY_EXIT_CODE"
|
|
exit $UNITY_EXIT_CODE
|
|
fi
|