#!/usr/bin/env bash # # Create directory for license activation # ACTIVATE_LICENSE_PATH="$GITHUB_WORKSPACE/_activate-license" mkdir -p "$ACTIVATE_LICENSE_PATH" # 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 "###########################" echo "# Failure #" echo "###########################" echo "" echo "Please note that the exit code is not very descriptive." echo "Most likely it will not help you solve the issue." echo "" echo "To find the reason for failure: please search for errors in the log above." echo "" echo "Exit code was: $UNITY_EXIT_CODE" exit $UNITY_EXIT_CODE fi # Return to previous working directory popd