Skip to content

ci(zs): keep cargo's default target dirs on CI runners (fixes Relay E2E after #34) - #41

Merged
wiggdevin merged 1 commit into
zs/mainfrom
ci/keyed-target-dir-skip-ci
Sep 8, 2026
Merged

wiggdevin merged 1 commit into
zs/mainfrom
ci/keyed-target-dir-skip-ci

Conversation

@wiggdevin

@wiggdevin wiggdevin commented Sep 8, 2026

Copy link
Copy Markdown

Summary

Every merge-queue run since #34 landed has failed in Relay E2E → Start relay (#36, #38, #37 ejected):

[relay-test] --no-build: /home/runner/.cache/zs/buzz-cargo-targets/<key>/root/ci/buzz-relay missing or not executable

The job downloads the prebuilt relay into target/ci and starts it with --no-build, but scripts/start-relay-for-tests.sh (and the other scripts and Justfile recipes #34 touched) now export the worktree-keyed CARGO_TARGET_DIR. #34's own PR and queue runs never exercised Relay E2E because a scripts-only change skips it in the path filter.

What changed

scripts/zs/cargo-target-dir.sh: when CI is set, return cargo's default locations (<repo>/target for root, <repo>/desktop/src-tauri/target for desktop) instead of the keyed cache dir. Keying exists to isolate worktrees on a shared developer machine; CI runners are ephemeral. This is a single-point fix that also restores the rust-cache paths for every Justfile recipe on runners. Local behaviour is unchanged.

Gates run

  • CI=true scripts/zs/cargo-target-dir.sh root|desktop → repo-local paths; unset → keyed cache dir (unchanged).
  • bash -n, shellcheck: clean.
  • Pre-push hook (lefthook) lanes green.
  • No full suite locally; the queue runs Relay E2E on this change.

Follow-up

Add Relay E2E to the path filter for scripts/** so a script-only change cannot skip the job that runs it.

🤖 Generated with Claude Code
https://claude.ai/code/session_01P8VoJ9givMm44HNc4gx5Gz


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

#34 keyed CARGO_TARGET_DIR by worktree in the shared scripts and Justfile recipes. On GitHub runners that broke the Relay E2E job: the job downloads the prebuilt relay into target/ci and starts it with --no-build, but start-relay-for-tests.sh now looked in ~/.cache/zs/buzz-cargo-targets/<key>/root/ci. #34's own runs never exercised the job because a scripts-only change skips it; every merge-queue run after #34 landed failed there (#36, #38, #37). Keying is for shared developer machines; CI runners are ephemeral, so cargo-target-dir.sh returns cargo's default target/ and desktop/src-tauri/target when CI is set, which also restores the rust-cache paths.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

Claude-Session: https://claude.ai/code/session_01P8VoJ9givMm44HNc4gx5Gz
Signed-off-by: wiggdevin <202901685+wiggdevin@users.noreply.github.com>
@wiggdevin
wiggdevin enabled auto-merge September 8, 2026 01:39
@wiggdevin
wiggdevin added this pull request to the merge queue Sep 8, 2026
Merged via the queue into zs/main with commit a678496 Sep 8, 2026
100 of 103 checks passed
@wiggdevin
wiggdevin deleted the ci/keyed-target-dir-skip-ci branch September 8, 2026 02:52
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.

1 participant