Skip to content

[CI] Emit FrameworkWeb ingest JSON from parity workflow#3259

Draft
albmalamd wants to merge 1 commit into
developfrom
users/albmalamd/parity-json-ingest
Draft

[CI] Emit FrameworkWeb ingest JSON from parity workflow#3259
albmalamd wants to merge 1 commit into
developfrom
users/albmalamd/parity-json-ingest

Conversation

@albmalamd
Copy link
Copy Markdown

Summary

  • Add .automation_scripts/pytorch-unit-test-scripts/summary.py, a hardened port of FrameworkWeb's summary.py that converts a directory of JUnit XML reports into the JSON schema accepted by FrameworkWeb's /utt/ingest endpoint. Accepts repeated --input-dir so callers can fan in multiple shard directories.
  • Modify parity.yml:
    • New optional rocm_version / pytorch_version workflow_dispatch inputs (recorded in the JSON's build block).
    • New Generate FrameworkWeb ingest JSON step in generate-parity: groups per-shard subdirs under rocm_xml/ (test-default-i-N, test-distributed-i-N, test-inductor-i-N) by test config and emits one JSON per (arch, config) named ${DATE}_${ARCH}_${CFG}_ingest.json.
    • Includes *.json in the per-arch artifact upload paths.

The arch label is mapped to a gfxArch value (mi300→gfx942, mi355→gfx950, mi200→gfx90a, navi31→gfx1100, nightly→gfx942); other inputs (branch, commit, url, repoOwner) come from the workflow context.

Closes ROCm/frameworks-internal#16703

Test plan

  • Local: python3 summary.py --input-dir <synthetic xml dir> --output-json out.json … produces a JSON whose shape matches samples/sample.json (all five statuses — passed, failed, skipped, xfailed, error — round-trip correctly).
  • Local: simulated the workflow's per-config grouping against a fake rocm_xml/ tree containing test-default-{1,2}-2/, test-distributed-1-1/, test-inductor-1-1/ and confirmed the loop emits one JSON per config with the correct results aggregated.
  • Trigger parity.yml via workflow_dispatch against a small arch (e.g. mi300) on this branch and inspect the artifact for *_ingest.json files.
  • Optional: POST one of the generated JSONs to a local FrameworkWeb instance per its README to confirm ingest succeeds.

🤖 Generated with Claude Code

Add `.automation_scripts/pytorch-unit-test-scripts/summary.py`, a port of
the FrameworkWeb `summary.py` that converts a directory of JUnit XML
reports into the JSON schema accepted by the FrameworkWeb ingest
endpoint:

  { build: {url, branch, commit, gfxArch, repoOwner, rocmVersion,
            pytorchVersion, testConfig, buildTimestamp},
    results: [{file, classname, name, time, status}, ...] }

The local copy accepts repeated `--input-dir` and a named `--output-json`
so the workflow can group per-shard subdirectories (`test-default-i-N`,
`test-distributed-i-N`, `test-inductor-i-N`) by test config and emit one
JSON per (arch, config) pair.

Update `parity.yml`:
  * Add optional `rocm_version` / `pytorch_version` workflow_dispatch
    inputs (recorded in the JSON; default "").
  * After the existing log-failure detection step, group shard dirs under
    `rocm_xml/` by config and invoke `summary.py` per config. Output is
    named `${DATE}_${ARCH}_${CFG}_ingest.json` in the per-arch result
    folder.
  * Include `*.json` in the per-arch artifact upload paths.

Closes ROCm/frameworks-internal#16703
@rocm-repo-management-api
Copy link
Copy Markdown

rocm-repo-management-api Bot commented May 27, 2026

Jenkins build for 406ab6f48cb0d6196ee827dd0c9b9a6f9b3489de commit finished as FAILURE
Links: Pipeline Overview / Build artifacts / Test Results

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