Repository navigation
ci: cap job run time with timeout-minutes - #2905
Draft
bitsandfoxes wants to merge 1 commit into
Draft
bitsandfoxes wants to merge 1 commit into
bitsandfoxes wants to merge 1 commit into
Conversation
bitsandfoxes
force-pushed
the
ci/infra-retries
branch
from
October 25, 2026 17:39
262495c to
56e67a0
Compare
bitsandfoxes
force-pushed
the
ci/job-timeouts
branch
from
October 25, 2026 17:39
74ed8f9 to
ca42022
Compare
bitsandfoxes
force-pushed
the
ci/infra-retries
branch
from
October 26, 2026 07:01
56e67a0 to
e01f78f
Compare
bitsandfoxes
force-pushed
the
ci/job-timeouts
branch
from
October 26, 2026 07:41
ca42022 to
fc10027
Compare
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.
Every CI job now has a job-level
timeout-minutes, so a hung job fails within its usual worst case instead of running for up to 6 hours.Without a job timeout, GitHub stops a job after 6 h. Two jobs in the last 30 days ran that long, and a hung job that holds a Unity editor keeps its license seat leased. Step timeouts don't cover this: while measuring this stack, a Run iOS job's "Run iOS Integration Tests" step with
timeout-minutes: 20was still running at 39 min, and had to be cancelled by hand (job 121176550259). The new 25-min job timeout would have stopped it.Each number covers the job's green p95 from the last 30 days, plus the worst case the stack below allows: a 30-min license wait per Unity launch (#2900), one retry per infra signature (#2904), and a consumer that stops waiting for
package-releaseonce the SDK build fails (#2898).sdk.ymlalready has 30), plus build and three Unity launches with one full license waitpackage-release, which can land late in a legitimately slow 90-min SDK build. After that they need ~25 more min for their own launchesneeds:the SDK build now, so it no longer waits. 19 s on a green runThe step timeouts stay as they are. Shorter ones would cut off the tests' own 300 s event polls, so a missing event would end as "The action has timed out" instead of the Pester failure that names it.
cancel-previous-workflowgets none: its only conflict-free spot next to the UaaL branch'sruns-onchange would be after its steps. Eachtimeout-minutesis the first key under its job, which keeps it away from theruns-onlinesci/uaal-integration-testschanges, and the two branches merge cleanly.Stacked on #2904.
CI evidence: run 40217553065 passed 56/56 in 43 min with these limits. It's the green run for the whole stack below on its final commits, without any throwaway commits.
Rebased onto #2907: run 40287391159 is green on the first attempt in 33.0 min.
🤖 Generated with Claude Code