fix(licensing): add unityLicensingToolset input + fix HOME/USER under runAsHostUser

Addresses #739. Two opt-in, backwards-compatible changes for users on Linux
Docker builds with a Unity floating-license server:

1. Floating license servers that host multiple toolsets had no way to tell
   the Licensing Client which toolset to request — Unity could fall through
   to an entitlement that lacks build-target support (e.g. Android), then
   silently produce a Linux Standalone artifact. The action now accepts an
   optional unityLicensingToolset input that is written into
   services-config.json. When unset, the rendered config is byte-for-byte
   identical to before.

2. With runAsHostUser: true, su was invoked without explicit HOME/USER, so
   the host user inherited root's environment (HOME=/root, USER unset). The
   Unity Licensing Client, which writes to ~/.config/unity3d, could not
   resolve a writable home directory, leading to intermittent license
   activation failures. Set HOME/USER/LOGNAME explicitly before sourcing
   build steps. Change lives entirely inside the existing runAsHostUser
   branch.
This commit is contained in:
frostebite
2026-05-07 20:00:10 +01:00
parent d829bfc901
commit dd95ad9604
9 changed files with 113 additions and 12986 deletions
+9 -2
View File
@@ -168,6 +168,14 @@ inputs:
default: ''
required: false
description: 'The Unity licensing server address to use for activating Unity.'
unityLicensingToolset:
default: ''
required: false
description:
'Optional toolset identifier for Unity floating-license servers that host multiple toolsets (e.g.
"LicenseServer_1234567890_3"). When set, written to services-config.json so the Licensing Client
requests entitlements from the named toolset instead of relying on the server-side default. Leave
empty to preserve previous behavior.'
dockerWorkspacePath:
default: '/github/workspace'
required: false
@@ -181,8 +189,7 @@ inputs:
linux64RemoveExecutableExtension:
default: 'false'
required: false
description:
'When building for StandaloneLinux64, remove the default file extension of `.x86_64`. Set to true to restore the extensionless behavior from v4.'
description: 'When building for StandaloneLinux64, remove the default file extension of `.x86_64`. Set to true to restore the extensionless behavior from v4.'
outputs:
volume: