Unity activation not properly supported anymore with support for GameCI Docker images version 3
Opened this issue · 1 comments
Orb version
After 1.7.0
Execution environment
- Executor: all of them
- Target platform: all of them
- Unity Editor version: all of them
Bug description
The activation process for Unity changed a bit concerning personal licenses and GameCI images in version 3. To properly support new Unity versions, we need to solve the activation issues.
How to reproduce
- Fork this repository
- Create a project on CircleCI and connect your fork to it
- Fill in some environment variables to run the jobs with actual activations for Unity
Expected behavior
With valid env variables, good credentials and a valid license, activation should pass.
Additional details
Detected OS: Linux.
The "build-method" parameter is empty. Falling back to the default build script.
++ xvfb-run --auto-servernum '--server-args=-screen 0 640x480x24' unity-editor -projectPath /root/project/Unity2D-Demo-Game-CI-CD/src -quit -batchmode -nographics -buildTarget StandaloneLinux64 -customBuildTarget StandaloneLinux64 -customBuildName StandaloneLinux64 -customBuildPath /root/project/Unity2D-Demo-Game-CI-CD/src/Builds/StandaloneLinux64/ -executeMethod BuildCommand.PerformBuild -logFile /dev/stdout
Unity Editor version: 2022.3.33f1 (b2c853adf198)
Branch: 2022.3/staging
Build type: Release
Batch mode: YES
System name: Linux
Distro version: #63~20.04.1-Ubuntu SMP Mon Mar 25 10:28:36 UTC 2024
Kernel version: 5.15.0-1057-aws
Architecture: x86_64
Available memory: 70717 MB
[Licensing::Module] Trying to connect to existing licensing client channel...
[Licensing::IpcConnector] Connection attempt to the License Client on channel: "LicenseClient-root" failed because channel doesn't exist; code: "0x80000002"
[Licensing::Module] Successfully launched the LicensingClient (PId: 273)
[Licensing::IpcConnector] Successfully connected to the License Client on channel: "LicenseClient-root" at "2024-06-12T19:03:01.653384Z"
[SignatureVerifier] Application signature verification not supported on this platform.
[Licensing::Client] Handshaking with LicensingClient:
Version: 1.15.4+eee609c
Session Id: 65e5e50f375b4871a46eacf65f2b7953
Correlation Id: 4ba3e9de9ae505afd71f05ce91f9204e
External correlation Id: 5161085665695614536
Machine Id: D7nTUnjNAmtsUMcnoyrqkgIbYdM=
[Licensing::Module] Successfully connected to LicensingClient on channel: "LicenseClient-root" (connect: 0.61s, validation: 0.05s, handshake: 0.00s)
[Licensing::IpcConnector] Successfully connected to the License Notification on channel: "LicenseClient-root-notifications" at "2024-06-12T19:03:01.702255Z"
[Licensing::Module] Connected to LicensingClient (PId: 273, launch time: 0.00, total connection time: 0.66s)
[Licensing::Module] Error: Access token is unavailable; failed to update
[Licensing::Client] Successfully updated license
[Licensing::Client] Successfully resolved entitlements
[Licensing::Module] Error: License is not active (com.unity.editor.headless). HasEntitlements will fail.
Pro License: NO
Initialize udev device monitor.
No valid Unity Editor license found. Please activate your license.
Exited with code exit status 1
Here is a relevant merge request on a related project on gitlab:
https://gitlab.com/game-ci/unity3d-gitlab-ci-example/-/merge_requests/95
The following section should help in providing details on how to fix activation for new GameCI docker image version 3:
https://gitlab.com/game-ci/unity3d-gitlab-ci-example/-/merge_requests/95#how-to-extract-your-unity-serial-from-your-unity-license-file
This script might be useful as well:
https://gitlab.com/game-ci/unity3d-gitlab-ci-example/-/blob/cc50193350429ee6d27cb11e026ea826a54bd331/ci/before_script.sh
To summarize this, the technique is pretty much to extract a serial number out of the personal license file.
Here are the currently configured secrets for the orb:
UNITY_ENCODED_LICENSE_2020
UNITY_ENCODED_LICENSE_2021
UNITY_PASSWORD
UNITY_USERNAME
I have the permissions to update their values. In comparison, here are the environment variables used in our other projects (github-actions):
UNITY_EMAIL
UNITY_LICENSE
UNITY_PASSWORD
UNITY_SERIAL
It might be a good idea to get closer to the Github Actions ones.