From b20286a3611b199525dca2ec4a3d136566afe4ec Mon Sep 17 00:00:00 2001 From: Andrew Kahr <22359829+AndrewKahr@users.noreply.github.com> Date: Sun, 5 Nov 2023 23:59:27 -0800 Subject: [PATCH] Ensure serial is prioritized --- dist/index.js | Bin 22172464 -> 22172408 bytes dist/index.js.map | Bin 14642005 -> 14642089 bytes dist/platforms/ubuntu/steps/activate.sh | 57 +----------------- dist/platforms/ubuntu/steps/return_license.sh | 2 +- src/model/build-parameters.ts | 2 + src/model/docker.ts | 3 - src/model/image-environment-factory.ts | 32 +++++++--- 7 files changed, 29 insertions(+), 67 deletions(-) diff --git a/dist/index.js b/dist/index.js index 6003d75d1b23f3d720d0cbc13e0e12260182ce34..68bebe1695a1852edc4bc7f17de8044a34cdd2d2 100644 GIT binary patch delta 1894 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 WEXkJ)l@v&ZNeWHd`9Cqe?*A7K%!h&i diff --git a/dist/index.js.map b/dist/index.js.map index 560e37b10d6f371a30a8652b38349fdcc6803601..78d6280c2618af26706322df37a17550eb4b80fa 100644 GIT binary patch delta 1509 zcmY+>Yf#ix7{~E}h24b}Sh>T0*|XvWL(`zJEKpP|Q;`KkGBO|oq5zRFBIBY~n_UpJ zd@`}L6cE@TQ2$-LA!av7w8X4*dfC(rQ~Abhocba&MlU`y=RD{9o^#He3&S^z2QS_* zcAqdx_rfrjEXfJ|Ye%DpZ|{IV0)#*ABT%3E_x9q;5*kd?x755?idd{_6tG;3df^QAU|x zX`ieAxmZ&^Qh!`CN<)?17?@eGwxXbN`i8RN%IeI5isJkd$uG7|mhMPfq$@E^gAGxz z>xpUVYM7o;q?A#wEmcV#`X6PgCSDqcHE;dQKDFH-(^}M!%$uo##kwuZB$HAdp>nd& z7AkqaU-p*PHsvQvQysyQ<Za-72?|72*^TW6Z}d ztHin6?kA0Dno0LPqB8xZ|LU9&v2Km?(Q8htb!HhEP|NkiL6sdn_JLyE=%|vqA-hQi zQ?wY#{YCSW*}e8zQvMsGhUoCnom0a7rMX@Ukm^NRvg|z?HO-ZHUBQ7#h{j}0!BmW{ z$6z{cLo8-sCT_LuM7x&^mBq9m(FdxZSfQ49u6fDO5cmPZA zAeLeomLnA_kOn8xk%3ICL>5*d8xLVM9!3rx!5Tb@T;w4ik6|qyM*#{^geOppC-D?Y zP>M3FLpj!?0#Bn78}JOO@GPqF95&*4)Swo1sK+L3#umJQ7x5BYco|#q3SPx)cpVMc zhDJ1DJ9gj=yosF;|O$ogpctFKE+WS!*QIzN%Y|q`f(bc;S4^<7x)ri;cE7cgMRVgLXD delta 1988 zcmZ9~dr(wW90%}O7Iwj9S>z$;T{u@XVdJ4dl=2cpNDP$#Q)}hna?y=-+3xNt1S({P zl_f^{OMFpj1c)wTUNb|bmuVK1V5T}PWzQ% z)!@*u%5_H7+@zSGm_q}gb0VZqev#O}x*3WdzV9awdDvsn`jwGw$;2R< zF&rEtPwl#?j2?Z?-;tl-jw+s?B5g_) z54&e1+Xbao&TCUrQ*VG~b6|aAV7&r7Knb4U1u9U3H~7E=(10&!!4Guc4-+8(0wD;3 zVUiSBAM)36`aLn!N9Pdij#!J?Bv|c2tSC@s{**|Xl^CjNR3(MNWSAnUk~pm|_0Qz5 zN$EM9hbQq%nU}O_A;)~EfA!92I$gwR8a<0R&_fu6OP)pSR*3J?#koZ*N(!?Jax?QN z-p-<=;Y#MG(m1VVM@^w1n#(MbkI3dK^y4Gbj1kjo$Ayr;gH57al`L3VVP}>EYWkD& z@|AaAGP--JpR5m|lM6Uq@O>XuRxXIf2&wlF+pkpTe5B~v>KCQ~Q={x2#W>||Fxtu>Xb^gAY?bTALdr3wCs#M~ zmQ3AjqqnC~G+L>DZx|!hDV9YCc5`ZJxR{n09 z5M|(N-Fs;GnHA6viJY2Bm3j@G^$PPL|6k^)d~If%U@=>T9J58BoBD7)?Y+UYIjhZ% zHO^I~F?{LzDzUP{QnlVL4@{OSXL+pXv|0r*wsN*Tb}T)vX04^vkRtcu@e>7yQ?&Bb zurNGKI~F6iFwl~TIJV&%j4c~KAHzpF9Tl@94TdKmcc2a4g?8wGPB;u* za0HHm3%cPL^uTd=4^DstC*gfK1s}j^_z-&G44j2?&<7vE$M6Y!3ZKDw_#7_4Mfd_P l!I$tA^uqvr4d1|J7=$6X0^h<__zteYb+{q5-1%N7{s-=pofrTB diff --git a/dist/platforms/ubuntu/steps/activate.sh b/dist/platforms/ubuntu/steps/activate.sh index 81eb2ffc..49ecc376 100755 --- a/dist/platforms/ubuntu/steps/activate.sh +++ b/dist/platforms/ubuntu/steps/activate.sh @@ -4,64 +4,13 @@ echo "Changing to \"$ACTIVATE_LICENSE_PATH\" directory." pushd "$ACTIVATE_LICENSE_PATH" -if [[ -n "$UNITY_LICENSE" ]] || [[ -n "$UNITY_LICENSE_FILE" ]]; then +if [[ -n "$UNITY_SERIAL" && -n "$UNITY_EMAIL" && -n "$UNITY_PASSWORD" ]]; 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 + # 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)" + echo "Requesting activation" # Activate license unity-editor \ diff --git a/dist/platforms/ubuntu/steps/return_license.sh b/dist/platforms/ubuntu/steps/return_license.sh index f0f68b58..f2ee12c1 100755 --- a/dist/platforms/ubuntu/steps/return_license.sh +++ b/dist/platforms/ubuntu/steps/return_license.sh @@ -13,7 +13,7 @@ if [[ -n "$UNITY_LICENSING_SERVER" ]]; then # /opt/unity/Editor/Data/Resources/Licensing/Client/Unity.Licensing.Client --return-floating "$FLOATING_LICENSE" elif [[ -n "$UNITY_SERIAL" ]]; then # - # PROFESSIONAL (SERIAL) LICENSE MODE + # SERIAL LICENSE MODE # # This will return the license that is currently in use. # diff --git a/src/model/build-parameters.ts b/src/model/build-parameters.ts index 8c322124..57d649ad 100644 --- a/src/model/build-parameters.ts +++ b/src/model/build-parameters.ts @@ -12,6 +12,7 @@ import { Cli } from './cli/cli'; import GitHub from './github'; import CloudRunnerOptions from './cloud-runner/options/cloud-runner-options'; import CloudRunner from './cloud-runner/cloud-runner'; +import * as core from '@actions/core'; class BuildParameters { // eslint-disable-next-line no-undef @@ -127,6 +128,7 @@ class BuildParameters { ); } unitySerial = this.getSerialFromLicenseFile(Input.unityLicense); + core.setSecret(unitySerial); } else { unitySerial = Input.unitySerial!; } diff --git a/src/model/docker.ts b/src/model/docker.ts index aec955bc..cd33f863 100644 --- a/src/model/docker.ts +++ b/src/model/docker.ts @@ -62,7 +62,6 @@ class Docker { --workdir ${dockerWorkspacePath} \ --rm \ ${ImageEnvironmentFactory.getEnvVarString(parameters, additionalVariables)} \ - --env UNITY_SERIAL \ --env GITHUB_WORKSPACE=${dockerWorkspacePath} \ --env GIT_CONFIG_EXTENSIONS \ ${gitPrivateToken ? `--env GIT_PRIVATE_TOKEN="${gitPrivateToken}"` : ''} \ @@ -93,7 +92,6 @@ class Docker { const { workspace, actionFolder, - unitySerial, gitPrivateToken, dockerWorkspacePath, dockerCpuLimit, @@ -105,7 +103,6 @@ class Docker { --workdir c:${dockerWorkspacePath} \ --rm \ ${ImageEnvironmentFactory.getEnvVarString(parameters)} \ - --env UNITY_SERIAL="${unitySerial}" \ --env GITHUB_WORKSPACE=c:${dockerWorkspacePath} \ ${gitPrivateToken ? `--env GIT_PRIVATE_TOKEN="${gitPrivateToken}"` : ''} \ --volume "${workspace}":"c:${dockerWorkspacePath}" \ diff --git a/src/model/image-environment-factory.ts b/src/model/image-environment-factory.ts index c66697b4..6162b50b 100644 --- a/src/model/image-environment-factory.ts +++ b/src/model/image-environment-factory.ts @@ -1,4 +1,3 @@ -import { ReadLicense } from './input-readers/test-license-reader'; import { DockerParameters, StringKeyValuePair } from './shared-types'; class ImageEnvironmentFactory { @@ -23,14 +22,18 @@ class ImageEnvironmentFactory { public static getEnvironmentVariables(parameters: DockerParameters, additionalVariables: StringKeyValuePair[] = []) { let environmentVariables: StringKeyValuePair[] = [ - { name: 'UNITY_LICENSE', value: process.env.UNITY_LICENSE || ReadLicense() }, - { name: 'UNITY_LICENSE_FILE', value: process.env.UNITY_LICENSE_FILE }, { name: 'UNITY_EMAIL', value: process.env.UNITY_EMAIL }, { name: 'UNITY_PASSWORD', value: process.env.UNITY_PASSWORD }, { name: 'UNITY_SERIAL', value: parameters.unitySerial }, - { name: 'UNITY_LICENSING_SERVER', value: parameters.unityLicensingServer }, + { + name: 'UNITY_LICENSING_SERVER', + value: parameters.unityLicensingServer, + }, { name: 'UNITY_VERSION', value: parameters.editorVersion }, - { name: 'USYM_UPLOAD_AUTH_TOKEN', value: process.env.USYM_UPLOAD_AUTH_TOKEN }, + { + name: 'USYM_UPLOAD_AUTH_TOKEN', + value: process.env.USYM_UPLOAD_AUTH_TOKEN, + }, { name: 'PROJECT_PATH', value: parameters.projectPath }, { name: 'BUILD_TARGET', value: parameters.targetPlatform }, { name: 'BUILD_NAME', value: parameters.buildName }, @@ -41,12 +44,21 @@ class ImageEnvironmentFactory { { name: 'VERSION', value: parameters.buildVersion }, { name: 'ANDROID_VERSION_CODE', value: parameters.androidVersionCode }, { name: 'ANDROID_KEYSTORE_NAME', value: parameters.androidKeystoreName }, - { name: 'ANDROID_KEYSTORE_BASE64', value: parameters.androidKeystoreBase64 }, + { + name: 'ANDROID_KEYSTORE_BASE64', + value: parameters.androidKeystoreBase64, + }, { name: 'ANDROID_KEYSTORE_PASS', value: parameters.androidKeystorePass }, { name: 'ANDROID_KEYALIAS_NAME', value: parameters.androidKeyaliasName }, { name: 'ANDROID_KEYALIAS_PASS', value: parameters.androidKeyaliasPass }, - { name: 'ANDROID_TARGET_SDK_VERSION', value: parameters.androidTargetSdkVersion }, - { name: 'ANDROID_SDK_MANAGER_PARAMETERS', value: parameters.androidSdkManagerParameters }, + { + name: 'ANDROID_TARGET_SDK_VERSION', + value: parameters.androidTargetSdkVersion, + }, + { + name: 'ANDROID_SDK_MANAGER_PARAMETERS', + value: parameters.androidSdkManagerParameters, + }, { name: 'ANDROID_EXPORT_TYPE', value: parameters.androidExportType }, { name: 'ANDROID_SYMBOL_TYPE', value: parameters.androidSymbolType }, { name: 'CUSTOM_PARAMETERS', value: parameters.customParameters }, @@ -86,7 +98,9 @@ class ImageEnvironmentFactory { } } } - if (parameters.sshAgent) environmentVariables.push({ name: 'SSH_AUTH_SOCK', value: '/ssh-agent' }); + if (parameters.sshAgent) { + environmentVariables.push({ name: 'SSH_AUTH_SOCK', value: '/ssh-agent' }); + } return environmentVariables; }