Skip to content

Bind trusted runner routing to canonical PR revisions - #1271

Merged
wesm merged 5 commits into
mainfrom
fix/public-runner-routing
Jul 26, 2026
Merged

Bind trusted runner routing to canonical PR revisions#1271
wesm merged 5 commits into
mainfrom
fix/public-runner-routing

Conversation

@wesm

@wesm wesm commented Jul 26, 2026

Copy link
Copy Markdown
Member

Trusted Linux jobs should select the managed runner only when the workflow is executing in the canonical repository. Fork-local events must remain on GitHub-hosted labels even when their branch and repository identities match each other.

The PR dispatchers call main-pinned reusable workflows without runner, trust, or checkout inputs. Those workflows independently derive trust from the canonical head and base repository identities, while checkout uses the immutable SHA GitHub associated with the caller event.

The managed image is intentionally lean, so the desktop composite explicitly installs a commit-pinned stable Rust toolchain instead of relying on hosted-image defaults. Playwright CI is bounded to eight workers because the host exposes more logical CPUs than each runner pod requests.

The coverage fixture now waits for the filesystem to expose a new change-time tick before asserting same-size rewrite detection, avoiding false failures on fast overlay filesystems without weakening the signature assertion.

Require the canonical repository identity before selecting the managed Linux fleet so fork-local events cannot request an unavailable organization label. Pass the immutable pull request event SHA into the main-pinned reusable workflows so checks and checkout target the same revision.
@roborev-ci

roborev-ci Bot commented Jul 26, 2026

Copy link
Copy Markdown

roborev: Combined Review (df2c4cd)

No issues found.


Reviewers: 2 done | Synthesis: codex | Total: 1m13s

The managed Linux runner deliberately has a lean base image, so desktop builds cannot rely on the hosted image's preinstalled Rust toolchain. Install stable Rust explicitly in the shared composite action.\n\nThe EPYC node also exposes far more logical CPUs than a runner pod requests, causing Playwright to launch 34 workers and overload the browser tests. Bound CI to eight workers so concurrency reflects the pod allocation while retaining parallel coverage.
@roborev-ci

roborev-ci Bot commented Jul 26, 2026

Copy link
Copy Markdown

roborev: Combined Review (ec0ee09)

Desktop artifact builds will fail because the pinned Rust toolchain action lacks an explicit toolchain.

Medium

  • .github/actions/build-desktop-artifact/action.yml:29dtolnay/rust-toolchain infers the Rust toolchain from its action ref when toolchain is omitted. Since the action is pinned to a commit SHA, it may attempt to install that SHA as the Rust toolchain. Keep the immutable pin and add:

    with:
      toolchain: stable

Reviewers: 2 done | Synthesis: codex, 7s | Total: 2m0s

wesm added 3 commits July 26, 2026 10:36
The same-size rewrite fixture can complete within one overlayfs change-time tick, making its before and after signatures identical even though native change-time support is working. Retry the fixture until the filesystem exposes a new tick so coverage jobs test the intended signature contract instead of the runner filesystem's effective timestamp resolution.
Let the main-pinned reusable workflows derive checkout directly from the caller event instead of accepting a ref from the pull request-controlled dispatcher. This removes the remaining caller-controlled input at the runner trust boundary and keeps each check tied to the revision GitHub associated with the run.
Tauri collapses linuxdeploy failures to a generic bundling error in normal mode, hiding the plugin or dependency that actually failed. Keep verbose bundler output enabled for desktop artifacts so the managed Linux image can be diagnosed from the workflow log without privileged host access.
@roborev-ci

roborev-ci Bot commented Jul 26, 2026

Copy link
Copy Markdown

roborev: Combined Review (e0ddf62)

No issues found.


Reviewers: 2 done | Synthesis: codex | Total: 6m33s

@wesm
wesm merged commit bf920ee into main Jul 26, 2026
25 of 26 checks passed
@wesm
wesm deleted the fix/public-runner-routing branch July 26, 2026 17:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant