Repository navigation
Add defense-in-depth guards for self-hosted runner jobs - #3153
Conversation
🏷️ CI GuideRuns automatically on every eligible PR before approval:
Heavy model tests:
|
valar-cop
left a comment
There was a problem hiding this comment.
some changes needed..
a fork pr or run showing the exposure these guards block?
ci green.
| jobs: | ||
| sglang-model-accuracy: | ||
| name: SGLANG Model Accuracy (${{ matrix.model_name }}) | ||
| if: ${{ github.event_name != 'pull_request' || !github.event.pull_request.head.repo.fork }} |
There was a problem hiding this comment.
this guard can never be false, all callers are schedule/workflow_dispatch only. same for the other five files. what exposure are we actually blocking?
There was a problem hiding this comment.
Good point. You are right that these guards do not block a current fork-PR path: the SGLang callers are schedule/workflow_dispatch only, and ATOMesh PRs do not currently dispatch to the self-hosted jobs. I force-updated the PR to make this explicit defense-in-depth: removed the caller-level no-op guards, kept guards only on the jobs that actually run on self-hosted runner labels, and added comments documenting that this protects against a future PR caller accidentally routing forked PR code onto those runners.
145d4e9 to
e0cd72e
Compare
Brings in main through 03b584b (ROCm#3109 V4.1 gfx1250 single-launch decode step, ROCm#3169, ROCm#3167, ROCm#3052, ROCm#3073, ROCm#3153, README news). One conflict, in model_runner.py: ROCm#3109's step override (`_step_override` / `_served`) and this branch's model head output (`compute_head`) sit side by side, in __init__ and as two branches of postprocess's verdict (a tuple head output; an overridden step's `verify_outputs`). The two are exclusive: an overridden step returns no head output. The hi runner test's stand-in runner gains ROCm#3109's `_served` and the stream argument of `forward_done_event.record`.
Summary
Current callers are schedule/workflow_dispatch-only for the guarded SGLang shard jobs, and the current ATOMesh pull_request path does not dispatch to these self-hosted jobs. These guards are intentionally scoped to the actual self-hosted runner jobs so a future PR caller cannot route forked PR code onto those runners by accident.
Validation
origin/mainand contains only the self-hosted runner defense-in-depth guards