Skip to content

ci: cross-repo fresh-shell PATH-persistence guard for install.sh#62

Merged
LukasWodka merged 1 commit into
developfrom
test/install-journey-737-cli-caller
Jul 14, 2026
Merged

ci: cross-repo fresh-shell PATH-persistence guard for install.sh#62
LukasWodka merged 1 commit into
developfrom
test/install-journey-737-cli-caller

Conversation

@LukasWodka

@LukasWodka LukasWodka commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

Part of #737

Summary

Adds a thin, label-gated CI job that catches a PATH-persistence regression in this repo's scripts/install.sh from the CLI side, pre-merge — instead of only after a release. This is the gap that let the original PATH issue ship green: no test opened a fresh shell after install and asserted tracebloc was reachable. A fresh non-login bash reads ~/.bashrc, not ~/.profile / ~/.bash_profile, so an installer that persists PATH to the wrong file looks fine in the install shell but breaks in a new terminal.

What changed

New workflow .github/workflows/install-path-persist.yml. It does not re-implement the check — the fresh-shell harness lives in tracebloc/client (scripts/tests/path-persist.sh) as the single source of truth (added in tracebloc/client#214). This job:

  1. Checks out this CLI PR (actions/checkout, path: cli).
  2. Checks out the client harness (actions/checkout with repository: tracebloc/client, path: client).
  3. Runs the harness in a fresh container per distro with TRACEBLOC_CLI_REF=/src/cli/scripts/install.sh — a local file path, so the harness installs this PR's install.sh (not the released one) and then asserts tracebloc resolves + tracebloc version runs from a fresh login and non-login shell for each of bash / zsh / fish.

Distro slice: ubuntu:24.04, debian:12, fedora:latest, opensuse/leap:15.6 (apt / dnf / zypper init families) — a representative subset; the full distro x shell x mode matrix runs in the client repo.

How it's triggered

Mirrors this repo's e2e.yml gating to control cost:

  • nightly schedule
  • workflow_dispatch
  • on a PR only when it carries the e2e label (contains(github.event.pull_request.labels.*.name, 'e2e')), and only when scripts/install.sh or this workflow change.

Refs

Verified locally / Needs CI

Verified locally (green):

  • yaml.safe_load on the workflow — parses.
  • actionlint on the workflow — clean.

Needs CI (requires GitHub runners / Docker — not run locally):

  • The actual cross-repo run (checkout of tracebloc/client + per-distro containers). It also depends on the harness branch being reachable; once client#214 merges, flip CLIENT_HARNESS_REF to develop.
  • To exercise it on this PR, add the e2e label.

Note

Low Risk
CI-only addition with read-only checkouts; no runtime or installer logic changes in this diff.

Overview
Adds .github/workflows/install-path-persist.yml, a pre-merge CI guard so regressions in scripts/install.sh PATH persistence fail before merge (fresh terminals can’t find tracebloc).

The workflow mirrors e2e.yml triggers: nightly schedule, workflow_dispatch, and PRs only with the e2e label when scripts/install.sh or this workflow changes. It checks out this repo’s PR tree and tracebloc/client at CLIENT_HARNESS_REF: develop, then runs client/scripts/tests/path-persist.sh in Docker across four distros with TRACEBLOC_CLI_REF=/src/cli/scripts/install.sh so the harness exercises this PR’s installer, not a released build.

Reviewed by Cursor Bugbot for commit b48f9bd. Bugbot is set up for automated code reviews on this repo. Configure here.

@LukasWodka

Copy link
Copy Markdown
Contributor Author

👋 Heads-up — Code review queue is at 17 / 8

Above the WIP limit. The team convention is to review existing PRs before opening new work.

Open PRs currently in Code review (oldest first):

Pull from review before opening new work. (This is a nudge from the kanban WIP check, not a block.)

@LukasWodka

Copy link
Copy Markdown
Contributor Author

Board hygiene 2026-07-07 (Lukas + Claude): reviewed against the current direction — still valid, not superseded (the cross-repo fresh-shell PATH guard is orthogonal to Rev 8/9 and arguably more valuable now that the installer also drops a tb symlink that should resolve in fresh shells too). Needs: a rebase (a month of installer churn incl. cli#142's tb alias — worth asserting tb version as well) and an un-draft decision. Keeping open.

@LukasWodka

Copy link
Copy Markdown
Contributor Author

bugbot run

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit bb35efa. Configure here.

Adds a label-gated (+nightly) CI job that catches a PATH-persistence
regression in this repo's scripts/install.sh from the CLI side, pre-merge:
a change that persists PATH only where a fresh non-login shell can't read it
(the class that shipped green originally) fails CI before it merges. The
fresh-shell harness is the single source of truth in tracebloc/client
(scripts/tests/path-persist.sh); this job checks it out and points it at the
PR's install.sh.

Tracks the harness on client's develop (it has since merged there),
resolving the original pin-to-feature-branch TODO. Part of #737.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@LukasWodka
LukasWodka force-pushed the test/install-journey-737-cli-caller branch from bb35efa to b48f9bd Compare July 14, 2026 16:30
@LukasWodka LukasWodka self-assigned this Jul 14, 2026
@LukasWodka

Copy link
Copy Markdown
Contributor Author

@BugBot run

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit b48f9bd. Configure here.

@LukasWodka
LukasWodka marked this pull request as ready for review July 14, 2026 16:33
@LukasWodka

Copy link
Copy Markdown
Contributor Author

👋 Heads-up — Code review queue is at 43 / 30

Above the WIP limit. The team convention is to review existing PRs before opening new work.

Open PRs currently in Code review (oldest first):

Pull from review before opening new work. (This is a nudge from the kanban WIP check, not a block.)

@LukasWodka
LukasWodka merged commit 2e63ec6 into develop Jul 14, 2026
23 checks passed
@LukasWodka
LukasWodka deleted the test/install-journey-737-cli-caller branch July 14, 2026 17:14
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.

2 participants