fix(amdsmi): derive ABI label target from run payload, not artifacts - #11001
Open
marifamd wants to merge 1 commit into
Open
fix(amdsmi): derive ABI label target from run payload, not artifacts#11001marifamd wants to merge 1 commit into
marifamd wants to merge 1 commit into
Conversation
The report workflow holds pull-requests: write and took both the PR number and the check verdict from artifacts produced by the check workflow. On pull_request the fork supplies the workflow file, so those artifacts are fork-controlled and could point label edits at any PR. Resolve the PR from the workflow_run payload instead and require its head to still match the commit that was checked. Also leave breakage labels untouched when no verdict was reported (a cancelled run previously cleared them), pin the ABI checker to a commit rather than a movable tag, and stop checking out the fork's copy of the check script. Signed-off-by: Maisam Arif <Maisam.Arif@amd.com>
✅ All Policy Checks Passed
📖 Need help? See the Policy FAQ for details on every check and how to fix failures. |
adam360x
approved these changes
Aug 31, 2026
JeniferC99
approved these changes
Aug 31, 2026
JeniferC99
left a comment
Collaborator
There was a problem hiding this comment.
lgtm, will not affect therock gating ci.
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.
Motivation
Follow-up to #9955. The ABI report workflow holds
pull-requests: writeand took both the PR number and the check verdict from artifacts uploaded by the check workflow. Onpull_requestthe fork supplies the workflow file, so those artifacts are fork-controlled and could point label edits at any PR in the repo.Separately, a run that produced no verdict (cancelled, or an infrastructure failure before the outcome was written) removed existing ABI breakage labels instead of leaving them alone.
Technical Details
Report workflow (
.github/workflows/abi-compliance-report.yml):workflow_runpayload (head_repository.owner.login+head_branch) and require itshead.shato still match the commit that was checkedpr_number.txtartifact fallback.workflow_run.pull_requestsis empty for fork PRs andcommits/{sha}/pullsreturns[]for them, so the payload branch/owner pair is the only trusted way to identify a fork PRsuccessremoves a label and onlyfailureadds oneworkflow_run.conclusion, and add a per-branch concurrency group so overlapping runs cannot interleave label editsCheck workflow (
.github/workflows/abi-compliance-check.yml):abi-compliance-checkerto commit8e819827(the commit behind tag2.3) instead of the movable tag, matching the SHA pinning already applied to the actionsprojects/amdsmi/include/amd_smi, so the fork's copy ofabi_check.pyis no longer written to disk. Only the header is needed from the head ref; the script already runs from_basepr_number.txt, now unusedResidual, and not fixable here: on
pull_requesta fork controls its own check workflow, so it can always report its own ABI result as clean. These changes contain the blast radius to the fork's own PR rather than any PR in the repo.Issue Tracking
JIRA ID: ROCM-26709
Test Plan
Workflow-only change, so the scripts were extracted from the YAML and run directly:
yaml.safe_loadResolve PR numberscript against the live API for a real fork PR (hanhanW:users/hanhanW/gfx1251-packed-fp64-fma) and for a deliberately stale head SHAghfor four cases: major failure, all clean, artifacts missing, and outcomeskippedamdsmi.hand no longer materializestests/abi_checkabi-compliance-checkercommit by SHA and confirmed theMakefileandTOOL_VERSION = "2.3"are intactTest Result
number=10997; the stale SHA returns empty and skips labelingfailureadds,successremoves, missing andskippedleave labels unchanged (previously both were removed)amdsmi.hpresent, fork copy ofabi_check.pyabsent8e819827e8d707c7addc4a08f5cf74045f2302bb, version string2.3pre-commit: passedSubmission Checklist