GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||||||||||||||||||||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||||||||||||||||||||||||||||||
GeezerVison is showing github.com — [SDK-7461] fix(setup-env): deliver BUILD_RUN_IDENTIFIER, ask the API when the triggering actor is unknown, stop failing re-run delivery silently by anish353 · Pull Request #88 · browserstack/github-actions Conversation
|
| Scenario | Before | After |
|---|---|---|
| all preconditions pass | BUILD_RUN_IDENTIFIER unset + ::warning::Ignoring non-allowlisted… |
BUILD_RUN_IDENTIFIER=1784546348645-29728341550, no warning |
github-token = none on a re-run |
log identical to a normal run | ::warning::…the 'github-token' input is not set. Every test will run again… |
| re-run started by a human | Triggering actor is - <x> only |
explains that no failed-test list applies, points at the GitHub App install |
runner never set GITHUB_TRIGGERING_ACTOR |
silent, indistinguishable from above | own message naming the runner, not the App |
| details API returns non-2xx | core.info, easily missed |
::warning:: naming the failure and its consequence |
| attempt 1 (ordinary run) | silent | silent (unchanged — deliberately) |
Driving the real published CLI (1.36.20, current latest) over a real reported project with that project's own --spec argument:
BROWSERSTACK_RERUN_TESTS |
Specs dispatched |
|---|---|
| unset | 11 of 11 — the full folder |
| 3 project-relative paths | 3 |
| 3 bare basenames | 3 |
This establishes the CLI half: the full set runs precisely when the list is absent, and the list is honoured in either format when present.
It is not, by itself, diagnostic of any particular failing build — a healthy first run also dispatches the full set, because the list is legitimately absent there. Distinguishing the two requires GITHUB_RUN_ATTEMPT > 1, which is not recoverable from build data alone. That project's workflow was correctly configured (step present with github-token, same job, before Run Tests, no env shadowing, CLI installed unpinned), which is what pointed at change 3.
These are three independent defects in the re-run delivery path, each evidenced on its own. The PR does not claim to resolve any specific support ticket: attribution of a particular customer failure to any one of these three is not established, and change 1 in particular is ruled out as a cause of full-suite re-runs (the spec list is delivered correctly while the identifier is dropped). Change 1 stands on its own merit — it has silently affected every setup-env re-run user since 2026-05-07.
Small, but not zero. Change 3 means workflows whose runner does not report a triggering actor will now make one extra authenticated GET on re-run attempts (>1) and, when BrowserStack did trigger the re-run, will start receiving the failed-test list they should always have had. Workflows on a BrowserStack-triggered re-run will now additionally receive BROWSERSTACK_BUILD_RUN_IDENTIFIER — the SDKs already read it and it was present before APS-19076, so this restores prior behaviour rather than introducing new behaviour. The rest is log-only. All eight delivery states were exercised end-to-end through the built action into the real CLI: pre-fix seven of eight produce a full-suite re-run, post-fix six of eight do (S4 and S5 now deliver), and each remaining failure carries a distinct job-log signature. Docs recommend pinning @master, so this reaches every setup-env user on merge.
Ref: SDK-7461, SDK-7124.
🤖 Generated with Claude Code
Sorry, something went wrong.
There was an error while loading. Please reload this page.
…when the actor is unknown, stop failing silently Three changes to the BrowserStack re-run delivery path. 1. BROWSERSTACK_BUILD_RUN_IDENTIFIER has been dropped since 2026-05-07. The rebuild/details response carries three variables; the APS-19076 allowlist (8ade0a3) listed only two plus BUILD_NAME, so the identifier is filtered out and only a core.warning marks it. Verified against the live API. The SDKs send it as build_run_identifier in the build-start payload, which files a re-run as an attempt of its parent build rather than an unrelated build. PR #85's own body predicted this: "If the rerun API legitimately sets additional names in production, the list will need to grow." 2. An unreported GITHUB_TRIGGERING_ACTOR no longer aborts delivery. That variable comes from the runner binary, so a self-hosted runner can simply not set it. The actor check is only a cheap pre-filter — rebuild/details is the authority and returns no variables when BrowserStack did not trigger the re-run. Bailing on an absent actor turned a working re-run into a full-suite run on an otherwise correctly configured workflow. We now warn and ask the API instead. 3. Every remaining delivery failure names itself. With github-token at its 'none' default the job log was byte-identical to a healthy run, and the CLI then runs the full spec set because BROWSERSTACK_RERUN_TESTS is absent — so "all my tests ran again" was undiagnosable. checkIfBStackReRun now names the missing input, a human-triggered re-run says so, and an API failure is a warning rather than info. Attempt 1 stays silent: an ordinary run is not a degraded re-run. Verified end-to-end through the built dist into the real CLI across all eight delivery states, and reproduced against a real reported failure: the build ran 11 sessions, the targeted spec folder holds 11 specs, and the real CLI dispatches 11 with the list absent and 3 with it present. 47 tests passing (4 new), eslint clean, dist rebuilt with ncc (reproducible). Co-Authored-By: Claude Opus 5 <[email protected]>
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Central YAML (base), Organization UI (inherited), Workspace UI (inherited) Review profile: ASSERTIVE Plan: Enterprise Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
Successfully merging this pull request may close these issues.
There was an error while loading. Please reload this page.