ci: cross-repo fresh-shell PATH-persistence guard for install.sh#62
Draft
LukasWodka wants to merge 1 commit into
Draft
ci: cross-repo fresh-shell PATH-persistence guard for install.sh#62LukasWodka wants to merge 1 commit into
LukasWodka wants to merge 1 commit into
Conversation
Thin, label-gated caller that catches a PATH-persistence regression in THIS repo's scripts/install.sh from the CLI side, pre-merge — rather than only after a release. 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. This workflow checks that harness out alongside this PR's source and runs it in a fresh container per distro with TRACEBLOC_CLI_REF pointed at this PR's install.sh (a local file path). A regression that puts the tracebloc binary somewhere a fresh non-login shell can't find then fails here before merge. Mirrors e2e.yml's gating: nightly schedule + workflow_dispatch + the `e2e` PR label only. The client harness ref is pinned to its feature branch with a TODO to switch to develop once client#214 merges. Part of #737. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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.) |
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.
Part of #737
Summary
Adds a thin, label-gated CI job that catches a PATH-persistence regression in this repo's
scripts/install.shfrom 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 assertedtraceblocwas 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:actions/checkout,path: cli).actions/checkoutwithrepository: tracebloc/client,path: client).TRACEBLOC_CLI_REF=/src/cli/scripts/install.sh— a local file path, so the harness installs this PR'sinstall.sh(not the released one) and then assertstraceblocresolves +tracebloc versionruns 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.ymlgating to control cost:scheduleworkflow_dispatche2elabel (contains(github.event.pull_request.labels.*.name, 'e2e')), and only whenscripts/install.shor this workflow change.Refs
CLIENT_HARNESS_REFenv var, with aTODO(client#214)to switch todeveloponce that PR merges (the harness doesn't exist on client'sdevelopyet).Verified locally / Needs CI
Verified locally (green):
yaml.safe_loadon the workflow — parses.actionlinton the workflow — clean.Needs CI (requires GitHub runners / Docker — not run locally):
CLIENT_HARNESS_REFtodevelop.e2elabel.