Detect more Unity license-contention signatures and cover the device-build job#4716
Open
allister-beamable wants to merge 1 commit into
Open
Detect more Unity license-contention signatures and cover the device-build job#4716allister-beamable wants to merge 1 commit into
allister-beamable wants to merge 1 commit into
Conversation
…build job PR #4702 added a problem matcher plus a post-failure annotation to the two Unity test shards, but left two gaps: - The matcher only recognized "No valid Unity Editor license found" and the ULF-return tail. The leading symptom of a lost seat is the licensing subsystem's "Found 0 entitlement groups and 0 free entitlements" 404, preceded by "Access token is unavailable; failed to update" -- neither was matched, so the signature that actually headlined the contention failures slipped through the live annotations. - The device-build job (Build for iOS/Android/...) had no matcher registration and no annotation step at all, even though it shares a serial and is exactly where the contention surfaced. Add the two missing license signatures to the matcher, and register the matcher plus an annotation step in the build job. The build job's annotation keys off an empty dist/ (a seat failure aborts before the player is built); because an empty dist/ also describes a genuine build break, its message points back at the license annotations rather than asserting contention outright. With max-parallel: 1 these gates should rarely trip, but the detection is now solid if they do. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to #4702. The serial-throttling (max-parallel: 1) is the real fix and should keep these gates from tripping — this PR just makes the detection solid for the cases where they do.
#4702 added a problem matcher plus a post-failure annotation to the two Unity test shards, but left two gaps:
1. The matcher missed the leading contention signature
It recognized only
No valid Unity Editor license foundand the ULF-return tail. The actual leading symptom of a lost seat is the licensing subsystem'sFound 0 entitlement groups and 0 free entitlements404, preceded byAccess token is unavailable; failed to update. That 404 (plus the downstreamcom.unity.editor.headless was not found) is what headlined the contention failures, yet none of it matched — so the live annotations never named the real cause.This adds two matcher patterns:
unity-license-no-entitlementsandunity-license-access-token-unavailable.2. The device-build job had no detection at all
Build for {iOS,Android,StandaloneWindows,StandaloneOSX}shares theUNITY_SERIAL_DEVOPSseat and is exactly where contention surfaced, but it had neither the matcher registration nor an annotation step — only the test shards did.This registers the matcher in the
buildjob and adds an annotation step. The build job keys off an emptydist/(a seat failure aborts before the player is built). Because an emptydist/also describes a genuine build break, that message points back at the license annotations rather than asserting contention outright — unlike the test shards' XML check.Notes
🤖 Generated with Claude Code