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
							 |