game-ci / documentation

📚 Documentation for GameCI open source projects
https://game.ci
MIT License
187 stars 119 forks source link

Having problems generating .alf file in get-activation phase #444

Open Irokaiser opened 9 months ago

Irokaiser commented 9 months ago

Hi, I've setup everything correctly as follows. The .alf file generates however its an empty file. I'm using a personal unity license and when I try to upload it I get an error (understandably).

Here is the output of the Job:

Running with gitlab-runner 16.6.1 (f5da3c5a)
  on OVH Runner fQVhdHdmU, system ID: r_[2](https://gitlab.mageworkstudio-pro.com/cardforge-elemental-tactics/unity/gameproject/-/jobs/80#L2)Xbe1nSzJcGN
Preparing the "docker" executor
00:02
Using Docker executor with image unityci/editor:2022.1.18f1-base-1 ...
Pulling docker image unityci/editor:2022.1.18f1-base-1 ...
Using docker image sha256:[3](https://gitlab.mageworkstudio-pro.com/cardforge-elemental-tactics/unity/gameproject/-/jobs/80#L3)8e6c5bb332323cb6098986fbc09d6fda465ffd970054b7d0d6fa43347ce8d1e for unityci/editor:2022.1.18f1-base-1 with digest unityci/editor@sha256:5fc9a09bf20073ea84a256c2570a864ba1b4823e60ac5f276d540caa32541614 ...
Preparing environment
00:01
Running on runner-fqvhdhdmu-project-1-concurrent-0 via 705fafee6cff...
Getting source from Git repository
Fetching changes with git depth set to 20...
Reinitialized existing Git repository in /builds/cardforge-elemental-tactics/unity/gameproject/.git/
Checking out 5acab2be as detached HEAD (ref is Unit-Test-Integration)...
Skipping Git submodules setup
Executing "step_script" stage of the job script
00:02
Using docker image sha256:38e6c5bb332323cb6098986fbc09d6fda[4](https://gitlab.mageworkstudio-pro.com/cardforge-elemental-tactics/unity/gameproject/-/jobs/80#L4)6[5](https://gitlab.mageworkstudio-pro.com/cardforge-elemental-tactics/unity/gameproject/-/jobs/80#L5)ffd970054b7d0d[6](https://gitlab.mageworkstudio-pro.com/cardforge-elemental-tactics/unity/gameproject/-/jobs/80#L6)fa4334[7](https://gitlab.mageworkstudio-pro.com/cardforge-elemental-tactics/unity/gameproject/-/jobs/80#L7)ce8d1e for unityci/editor:2022.1.18f1-base-1 with digest unityci/editor@sha256:5fc9a09bf20073ea84a256c2570a864ba1b4823e60ac5f276d540caa32541614 ...
$ chmod +x ./ci/before_script.sh && ./ci/before_script.sh
+ mkdir -p /root/.cache/unity3d
+ mkdir -p /root/.local/share/unity3d/Unity/
+ set +x
'$UNITY_LICENSE' env var not found
$ chmod +x ./ci/get_activation_file.sh && ./ci/get_activation_file.sh
Unity Editor version:    2022.1.18f1 (8a091f9adba4)
Branch:                  2022.1/staging
Build type:              Release
Batch mode:              YES
System name:             Linux
Distro version:          #101-Ubuntu SMP Tue Nov 14 13:30:08 UTC 2023
Kernel version:          5.15.0-91-generic
Architecture:            x86_64
Available memory:        64188 MB
User XXXXXX@XXXXXX.com logged in successfully
[LicensingClient] Channel doesn't exist: "LicenseClient-root"
[Licensing::Module] Successfully launched the LicensingClient (PId: 116)
[SignatureVerifier] Application signature verification not supported on this platform.
[LicensingClient] Handshaking with LicensingClient: 
    version: 1.10.0-rc.1+0c717dc
    Session Id: bf453d502d4641f2974cbd41b7cce2c1
    Machine Id: D7nTUnjNAmtsUMcnoyrqkgIbYdM=
[Licensing::Module] Successfully connected to LicensingClient on channel: "LicenseClient-root" (connect: 0.39s, validation: 0.05s, handshake: 0.00s)
[Licensing::Module] Connected to LicensingClient (PId: 116, launch time: 0.00, total connection time: 0.45s)
Entitlement-based licensing initiated
[LicensingClient] Successfully updated the access token
[Licensing::Module] Successfully updated the access token KU76CsqcDYUiHqWRMD4c-yQzH1GxNihQRE_tnW6MKGo005f
[LicensingClient] Error: Code 200 while updating license in client (status: Licenses updated.)
[LicensingClient] 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.
Checking for leaked weakptr:
  Found no leaked weakptrs.
Memory Statistics:
[ALLOC_TEMP_TLS] TLS Allocator
  StackAllocators : 
    [ALLOC_TEMP_CurlRequest]
      Initial Block Size 64.0 KB
      Current Block Size 64.0 KB
      Peak Allocated Bytes 0 B
      Overflow Count 0
    [ALLOC_TEMP_CoreBusinessMetricsCache]
      Initial Block Size 64.0 KB
      Current Block Size 64.0 KB
      Peak Allocated Bytes 0 B
      Overflow Count 0
    [ALLOC_TEMP_Profiler.Dispatcher]
      Initial Block Size 64.0 KB
      Current Block Size 64.0 KB
      Peak Allocated Bytes 0 B
      Overflow Count 0
    [ALLOC_TEMP_AssetGarbageCollectorHelper] x 11
      Initial Block Size 64.0 KB
      Current Block Size 64.0 KB
      Peak Allocated Bytes 0 B
      Overflow Count 0
[ALLOC_MEMORYPROFILER]
  Requested Block Size 1.0 MB
  Peak Block count 1
  Peak Allocated memory 4.4 KB
  Peak Large allocation bytes 0 B
##utp:{"type":"MemoryLeaks","version":2,"phase":"Immediate","time":1703176995572,"processId":100,"allocatedMemory":113196,"memoryLabels":[{"Default":730},{"Thread":128},{"Manager":7506},{"GfxDevice":312},{"Serialization":40},{"BaseObject":12056},{"String":5328},{"DynamicArray":560},{"HashMap":8330},{"Utility":1024},{"Curl":1112},{"PoolAlloc":10336},{"GI":3248},{"VR":80},{"Secure":6496},{"EditorUtility":2856},{"RestService":1022},{"License":344},{"UnityConnect":28584},{"Collab":25},{"LocalIPC":99},{"ProfilerEditor":20021},{"TLS":2959}]}
./unity3d.alf
### Congratulations! ###
./unity3d.alf was generated successfully!
### Next steps ###
Complete the activation process manually
   1. Download the artifact which should contain ./unity3d.alf
   2. Visit https://license.unity3d.com/manual
   3. Upload ./unity3d.alf in the form
   4. Answer questions (unity pro vs personal edition, both will work, just pick the one you use)
   5. Download 'Unity_v2019.x.ulf' file (year should match your unity version here, 'Unity_v2018.x.ulf' for 2018, etc.)
   6. Copy the content of 'Unity_v2019.x.ulf' license file to your CI's environment variable 'UNITY_LICENSE'. (Open your project's parameters > CI/CD > Variables and add 'UNITY_LICENSE' as the key and paste the content of the license file into the value)
Once you're done, hit retry on the pipeline where other jobs failed, or just push another commit. Things should be green
(optional) For more details on why this is not fully automated, visit https://gitlab.com/gableroux/unity3d-gitlab-ci-example/issues/73
Uploading artifacts for successful job
00:01
Uploading artifacts...
./unity3d.alf: found 1 matching artifact files and directories 
Uploading artifacts as "archive" to coordinator... 201 Created  id=[8](https://gitlab.mageworkstudio-pro.com/cardforge-elemental-tactics/unity/gameproject/-/jobs/80#L8)0 responseStatus=[20](https://gitlab.mageworkstudio-pro.com/cardforge-elemental-tactics/unity/gameproject/-/jobs/80#L20)1 Created token=[64](https://gitlab.mageworkstudio-pro.com/cardforge-elemental-tactics/unity/gameproject/-/jobs/80#L64)_WDmp7
Cleaning up project directory and file based variables
00:01
Job succeeded

Any ideas what is wrong? I think I've followed the steps correctly.

GabLeRoux commented 9 months ago

Ok so our gitlab documentation is not up to date anymore. We had issues with Unity activation using this method and we updated the way handle activation, but only our Github Actions were updated so far.

You can compare the procedure on here: https://game.ci/docs/github/activation

The new method is basically extracting a serial from a unity personnal license and we use it in combination with username and password.

The empty license file has been a long standing issue and that's also one of the main reason why we are moving away from this older procedure. I'm adding a note in my tasks to ping here again with an update.

GabLeRoux commented 9 months ago

For reference, here's the related issue for the empty license file: https://gitlab.com/game-ci/unity3d-gitlab-ci-example/-/issues/171

Irokaiser commented 9 months ago

@GabLeRoux

I'm using gitlabs not github which the link you provided follows. I assume its the repo's settings -> CI/CD -> Variables?

Am I defining the UNITY_LICENSE as a file or variable?

Irokaiser commented 9 months ago

I set it as a variable and I'm now getting this line appear:

Writing '$UNITY_LICENSE' to license file /root/.local/share/unity3d/Unity/Unity_lic.ulf

However the artifact is still a blank and empty file. What now?