Make return_license step in main job optional
nanodeath opened this issue ยท 8 comments
Orb version:
1.0.0
What happened:
When running with the unity-orb job, the build may succeed but then the "return license" step will run and fail:
LICENSE SYSTEM [2022831 1:41:30] Error fetching https://license.unity3d.com/update/poll?cmd=3&tx_id=41355cad154aaa5bf83f36699f935631
serial was activated manually for this computer and can't be returned
LICENSE SYSTEM [2022831 1:42:0] Failed to return license: Unity license return request has timed out. Please verify that you are connected to the Internet and/or try again later.
This is with a personal license. I followed the steps here.
Expected behavior:
Well, ideally the Unity service wouldn't return an error, it'd just say "okay thanks but I can't do anything with that."
Additional Information:
This forced me to decompose the job into its constituent commands, but...I'd have to do that anyway for my other "persist_to_workspace" issues mentioned in my other ticket (#25).
But if it wasn't for that, I'd be happy with any of the following options:
- Tell unity-orb I'm using a personal license, so it doesn't try to return it (since it was manually activated).
- Tell unity-orb I'm using a manually-activated license directly, so it doesn't try to return it.
- Have unity-orb check for "activated manually for this computer and can't be returned", or an HTTP status code (?), and ignore non-fatal errors from the Unity server.
Hi @nanodeath ๐
Thank you for opening this issue! I couldn't reproduce the error. Does it consistently fail when you run the build job? Since it's a timeout error, I believe it could be due to overload or maintenance on Unity's license server.
Just tested again, and yeah, it fails consistently.
Some additional context: I have UNITY_ENCODED_LICENSE
, UNITY_PASSWORD
, and UNITY_USERNAME
environment variables set via my context.
So, when the build initially runs I see this output:
[LicensingClient] Channel doesn't exist: "LicenseClient-root"
[Licensing::Module] Successfully launched the LicensingClient (PId: 216)
[SignatureVerifier] Application signature verification not supported on this platform.
[LicensingClient] Handshaking with LicensingClient (version: 1.9.0+249add7)
[Licensing::Module] Successfully connected to LicensingClient on channel: "LicenseClient-root" (connect: 0.48s, validation: 0.05s, handshake: 0.00s)
[Licensing::Module] Connected to LicensingClient (PId: 216, launch time: 0.00, total connection time: 0.53s)
Entitlement-based licensing initiated
[Licensing::Module] Error: Access token is unavailable
[LicensingClient] Licenses updated successfully
LICENSE SYSTEM [202291 1:8:7] Next license update check is after 2022-09-01T01:02:11
LICENSE SYSTEM [202291 1:8:7] Current license is already valid and activated. Skipping license activation process (Provided username/password will be ignored).
Which based on the last line makes it seem like only UNITY_ENCODED_LICENSE
is being used. However, the return-license
job doesn't even accept a parameter for that, only the username/password.
Basically it seems to me like if UNITY_ENCODED_LICENSE
is set, there's nothing to return.
Is this what your current config looks like? Are you using the Ubuntu executor with 2021.3.8f1?
I've since updated to 1.1.0 (which works great ๐) but otherwise yes.
Hmm, I still can't make sense of this error.
I have tried to reproduce it using the build job and each command individually, but both are working for me. This is the config I am using (ref):
version: 2.1
orbs:
unity: game-ci/unity@1.1.0
jobs:
build-windows:
executor:
name: unity/ubuntu
editor_version: 2021.3.8f1
resource_class: large
target_platform: windows-mono
steps:
- checkout
- unity/prepare-env:
project-path: "src"
unity-license-var-name: "UNITY_ENCODED_LICENSE_2021"
- unity/build:
build-name: "MyBuild"
build-target: StandaloneWindows64
project-path: "src"
- unity/return-license
workflows:
build-unity-project:
jobs:
- build-windows:
context: orb-testing-unity
- unity/build:
build-target: StandaloneWindows64
context: orb-testing-unity
project-path: "src"
unity-license-var-name: "UNITY_ENCODED_LICENSE_2021"
executor:
name: unity/ubuntu
editor_version: 2021.3.8f1
resource_class: large
target_platform: windows-mono
Since I could not reproduce it and it isn't a blocking problem, I'll close this issue. If it surfaces again, I'll re-open it.
Fair enough ๐
I've also run into the same issue today using orb 1.1.0 and editor 2021.3.7f1. I followed the doc instructions to manually activate a personal license, but then the return license job fails since unity doesn't allow returning manually activated licenses. Had to recreate the flow in my stack to make the return job optional, would love to have some sort of config to whether run the job or not in the orb like #29 proposes.