Skip to content

fix: make a renamed runner's bin and externals links relative - #74

Merged
aicayzer merged 1 commit into
mainfrom
fix/rename-runner-links
Sep 5, 2026
Merged

fix: make a renamed runner's bin and externals links relative#74
aicayzer merged 1 commit into
mainfrom
fix/rename-runner-links

Conversation

@aicayzer

@aicayzer aicayzer commented Sep 5, 2026

Copy link
Copy Markdown
Owner

Closes #73. Found by running rename against a real pool.

GitHub's runner updater points bin and externals at its versioned directories with absolute symlinks. rename moves the runner directory, both links dangle, and ./config.sh dies on a missing Runner.Listener before it registers anything. Every runner installation has these links, so rename failed on the first runner every time.

migrate-storage has always handled it. rename did not reuse the helper, which is now named _rp_rewrite_runner_links rather than for the single command that used to call it. Rewriting relative also makes the installation self-contained, so it survives being moved again.

Why the test missed it. Its fake config.sh did not care about the links, so it passed whether or not they were rewritten. It now refuses unless ./bin/Runner.Listener resolves, exactly as the real one does, and the fixture carries absolute links like a real install. Reverting just the library change now fails the test.

bash -n, shellcheck --severity=warning and all ten tests pass.

GitHub's runner updater points bin and externals at its versioned
directories with absolute symlinks, so moving a runner directory takes
two dangling links with it and ./config.sh dies on a missing
Runner.Listener before registering anything. Every runner install has
them, so rename failed on the first runner every time.

migrate-storage has always rewritten them relative. rename did not reuse
that helper, which is now named for what it does rather than for the one
command that used to call it.

The test did not catch this because its fake config.sh ignored the
links. It now refuses unless ./bin/Runner.Listener resolves, as the real
one does, and the fixture carries absolute links like a real install.

Closes #73
@aicayzer
aicayzer merged commit 50803eb into main Sep 5, 2026
2 checks passed
@aicayzer
aicayzer deleted the fix/rename-runner-links branch September 5, 2026 20:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

rename leaves the runner's bin and externals links pointing at the old directory

1 participant