Skip to content

[CI] Parity: fix upstream job links - #3536

Open
ethanwee1 wants to merge 6 commits into
ROCm:developfrom
ethanwee1:ew/parity-fix-job-links-develop
Open

[CI] Parity: fix upstream job links#3536
ethanwee1 wants to merge 6 commits into
ROCm:developfrom
ethanwee1:ew/parity-fix-job-links-develop

Conversation

@ethanwee1

@ethanwee1 ethanwee1 commented Aug 3, 2026

Copy link
Copy Markdown

Summary

  • record the workflow run ID for each downloaded shard job
  • build parity report links from the per-job run mapping instead of one overwritten run ID
  • retain the legacy single-run file as a fallback for older downloads

Test plan

  • Run Python syntax checks for both modified scripts
  • Verify the branch is limited to the downloader and report summarizer

Made with Cursor

Preview topology update

This branch now uses preview only and builds canonical per-shard links for the scheduled rocm-preview topology. #3406 owns the canonical Preview config; reconcile the duplicate config lines when rebasing after #3406 lands. Land after #3535.

Alignment landing order

Depends on #3554 and lands after #3535. It is the canonical job-link layer consumed by subsequent reports.

The "Job ID" links in the parity summary were built by pairing every shard
dir's "_<job_id>" with a single "_wf_run_id" file. But the default,
distributed and inductor configs resolve to DIFFERENT upstream runs (e.g.
mi350 default+inductor come from a trunk push while distributed comes from
periodic / a trunk fallback), and they all unzip into the same rocm_xml
folder. "_wf_run_id" is overwritten per config (last write wins), so shards
from the other runs got a URL like runs/<trunk_run>/job/<distributed_job_id>
- a run the job never belonged to, which 404s ("busted" in the summary).

Concrete case: run 30444136839 (mi350) linked
runs/30416143612/job/90430654935, but job 90430654935 (mi350 distributed
shard 1) actually lives in run 30404499951.

download_testlogs now records a job_id -> run_id map in "_wf_run_ids.json"
next to the shard dirs (accumulated across configs), and
summarize_xml_testreports.py looks each shard's job id up in that map,
falling back to the legacy single "_wf_run_id" only when absent. Job URLs
are now built with the run that actually produced each shard.
Keep job-link generation aligned with the scheduled rocm-preview lane and remove the retired nightly key.
Use the live rocm-preview mi350 topology and remove the retired nightly CLI/config key on the current develop history.
Match the unique rocm-preview lane without pinning its OS, Python, or runner suffix so routine upstream renames do not disable auto-parity.
Resolve the stacked Preview regex change while preserving canonical per-shard job URLs.

# Conflicts:
#	.automation_scripts/pytorch-unit-test-scripts/parity_job_config.json
@ethanwee1
ethanwee1 changed the base branch from ethanwee/parity-preview-replacement to main August 11, 2026 19:33
@ethanwee1
ethanwee1 changed the base branch from main to ethanwee/parity-preview-replacement August 11, 2026 19:36
@ethanwee1
ethanwee1 changed the base branch from ethanwee/parity-preview-replacement to develop August 11, 2026 19:37
Use the restored eight-shard default matrix so parity downloads every live MI300 shard.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant