Skip to content

[no-ci] CI: cover internal self-hosted runners in the runner trust probe - #3268

Merged
juenglin merged 3 commits into
NVIDIA:mainfrom
juenglin:ci/probe-internal-self-hosted-runners
Oct 28, 2026
Merged

juenglin merged 3 commits into
NVIDIA:mainfrom
juenglin:ci/probe-internal-self-hosted-runners

Conversation

@juenglin

@juenglin juenglin commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Description

The runner trust probe (#3251) exists to prove which runners still trust the compromised eMudhra/emSign chain (CVE-2026-111943) rather than relying on version claims, but it hard-codes its label matrix to the public label set and its job guard evaluates false on the private development repository, so it never runs there or exercises the additional runners that branch uses. Because main merges into the private branch frequently, the fix should live in a single identical copy of this workflow.

This change makes the probe self-configure from each branch's own CI definitions:

  • Guard: !github.event.repository.fork replaces the owner-name check. Both this repository and the private one are non-forks; personal forks still cannot reach self-hosted runners.
  • Label derivation: the static host list is replaced by a grep scan of runs-on references across this branch's own .github/workflows/, using a grammar that matches runner-label tokens and excludes host-platform strings (e.g. linux-64) and artifact-name fragments. GPU labels that appear only as computed matrix outputs are still derived from ci/test-matrix.yml. The host-vs-container split is preserved.

No change to what gets probed on main — the derivation reproduces the current label set exactly (16 host, 17 Linux-GPU; verified against the latest scheduled run). On the private branch, the same logic picks up its extra labels because that branch's own workflows reference them.

Follow-up (private branch)

Confirm whether runs-on: <label> alone routes to the internal runner pools, or whether an explicit group: is also required; if the latter, the probe matrix step will need to emit the map form for those labels.

Checklist

  • New or existing tests cover these changes.
  • The documentation is up to date with these changes.

Derive the probe's runner-label matrix from each branch's own workflows and guard on fork status, so the probe self-adapts across main and the private development branch without diverging. Reproduces the current main label set exactly (16 host, 17 Linux-GPU).
@juenglin juenglin added this to the cuda.bindings next milestone Oct 28, 2026
@juenglin juenglin added the CI/CD CI/CD infrastructure label Oct 28, 2026
@juenglin juenglin self-assigned this Oct 28, 2026
@copy-pr-bot

copy-pr-bot Bot commented Oct 28, 2026

Copy link
Copy Markdown
Contributor

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@juenglin juenglin changed the title CI: cover internal self-hosted runners in the runner trust probe [no-ci] CI: cover internal self-hosted runners in the runner trust probe Oct 28, 2026
Tighten the riscv64 regex branch to require a hardware suffix (-[a-z0-9][a-z0-9-]*[a-z0-9]), preventing HOST_PLATFORM strings (linux-riscv64) and artifact name prefixes (linux-riscv64-) from matching as phantom runner labels and queuing until timeout.
@juenglin
juenglin requested review from jpascucci-nv and rwgk October 28, 2026 18:40
@juenglin

Copy link
Copy Markdown
Contributor Author

/ok to test ff39a12

@juenglin
juenglin marked this pull request as ready for review October 28, 2026 18:41
@coderabbitai

coderabbitai Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review.

Recent review info
Run configuration
Commits

Reviewing files that changed from the base of the PR and between ff39a12 and a5ecf75.

Files selected for processing: 1
  • .github/workflows/runner-trust-probe.yml

Included review availability: This review used your included allowance. Your plan provides up to 12 included reviews per hour; 10 remain after this review.

📝 Summary

Summary by CodeRabbit

  • Chores
    • Updated automated test runner selection to skip forked repositories and recognize a wider range of hosted and GPU runner labels. Linux and WSL GPU runners are categorized separately, and optional label filtering continues to apply. These changes improve CI runner selection and do not alter end-user product functionality.

The workflow now skips fork repositories and builds runner label lists from hosted labels, labels discovered in workflow files, and GPU labels derived from the test matrix.

Changes: Runner trust probe

Layer / File(s) Summary
Job eligibility and runner labels
.github/workflows/runner-trust-probe.yml
The job skips fork repositories instead of checking whether the repository owner is nvidia. It combines hosted labels, matching labels discovered in other workflow files, and GPU labels derived from ci/test-matrix.yml. Linux/WSL GPU-pattern matches go to linux_gpu; other discovered labels go to host. The optional filter remains applied to both lists.

Possibly related PRs

Priority: Low

Change: Feature

Merge Risk: Moderate · up to a5ecf

The probe can select labels from unrelated workflow text and wait for an unavailable runner; constrain extraction before merging.

- [ ] Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai 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.

Actionable comments posted: 1


Review info
Run configuration
Commits

Reviewing files that changed from the base of the PR and between 8079296 and ff39a12.

Files selected for processing: 1
  • .github/workflows/runner-trust-probe.yml

Included review availability: This review used your included allowance. Your plan provides up to 12 included reviews per hour; 11 remain after this review.

Exclude the probe workflow itself from the grep scan so description-string examples do not produce phantom runner labels. Also filter extracted tokens ending in '-' as a defensive guard against artifact-name suffixes.

@rwgk rwgk left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM

codex GPT-6.1-Sol ultra:

  • No actionable findings at ff39a12.
    • Public matrix remains identical: 16 host labels and 17 Linux GPU labels.
    • All 15 labels discovered in the private branch correspond to actual runner selections.

@juenglin

Copy link
Copy Markdown
Contributor Author

/ok to test a5ecf75

@juenglin
juenglin enabled auto-merge (squash) October 28, 2026 19:11
@juenglin
juenglin merged commit a69a782 into NVIDIA:main Oct 28, 2026
26 of 27 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CI/CD CI/CD infrastructure

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants