game-ci / unity-orb

Build and test Unity projects for several platforms using CircleCI.
https://circleci.com/developer/orbs/orb/game-ci/unity
MIT License
7 stars 12 forks source link

Unity activation not properly supported anymore with support for GameCI Docker images version 3 #74

Open GabLeRoux opened 3 weeks ago

GabLeRoux commented 3 weeks ago

Orb version

After 1.7.0

Execution environment

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

  1. Fork this repository
  2. Create a project on CircleCI and connect your fork to it
  3. 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

https://app.circleci.com/pipelines/github/game-ci/unity-orb/322/workflows/53a92683-693b-4590-96af-e637609074c6/jobs/4081

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
GabLeRoux commented 2 weeks ago

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:

I have the permissions to update their values. In comparison, here are the environment variables used in our other projects (github-actions):

It might be a good idea to get closer to the Github Actions ones.