fix(ci): remove the per-runner RUNNER_TOOL_CACHE env — it is a no-op#19
Open
ywatanabe1989 wants to merge 1 commit into
Open
fix(ci): remove the per-runner RUNNER_TOOL_CACHE env — it is a no-op#19ywatanabe1989 wants to merge 1 commit into
ywatanabe1989 wants to merge 1 commit into
Conversation
The step-level env added in the previous change does NOT take effect: RUNNER_TOOL_CACHE is a runner-reserved default variable, and a workflow-level env does not override it. Measured on scitex-hpc ci run 30028631599 (2026-07-23, after the previous merge): all pytest-matrix legs still resolved the runner's ~/.runner-toolcache, not the intended per-runner /tmp path, identical to the unpatched jobs. Leaving a no-op that looks like a fix is worse than no fix. Replaced with a comment recording the finding and pointing at the only layer that can fix the shared-toolcache flake: the runner launcher (relaunch-scitex-hpc-runner.sh), which is where RUNNER_TOOL_CACHE is exported. Tracked in scitex-hpc card ci-runner-toolcache-per-runner-launcher-ssot-20260723.
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.
Reverting a no-op I merged an hour ago
PR #18 added a step-level
env: RUNNER_TOOL_CACHE: /tmp/.../${{ runner.name }}to scope the uv tool cache per runner. It does not work.RUNNER_TOOL_CACHEis a runner-reserved default variable, and a workflow-levelenv:does not override it.Measured, not assumed
scitex-hpc
cirun 30028631599 — dispatched 17:15:24Z, after #18 merged (17:06:52Z); the caller pinspytest-matrix.yml@main, so it ran the #18 version. Resolved toolcache path per job:pytest-matrix resolved the runner default, identical to the jobs I never touched. Note it is not
/tmp/scitex-ci-runner-work/toolcache//uv/...either — an emptyrunner.namewould have produced my hardcoded prefix. The override was ignored entirely, which is the signature of a reserved variable, not a bad interpolation.Why remove rather than leave it
A no-op that looks like a fix is the "gate that cannot fail" antipattern — the next reader believes the cache is scoped when it isn't. Replaced with a comment recording the measurement and pointing at the only layer that can fix it.
The real fix
The shared-toolcache flake (setup-uv concurrent-populate mutual destruction across ~80 runners) can only be scoped where the runner exports
RUNNER_TOOL_CACHE— the launcherrelaunch-scitex-hpc-runner.sh, per-runner + node-local. Tracked in scitex-hpc cardci-runner-toolcache-per-runner-launcher-ssot-20260723; it needs a listener-relaunch window (bundled with the supervisor cutover).@figrecipe — flagging since you reviewed #18. Your review wasn't wrong; the mechanism was, and only a real run surfaced it.
🤖 Generated with Claude Code