Skip to content

fix(ci): resolve runners with the therock-ci-config v2 API - #12960

Merged
andraghetti merged 2 commits into
developfrom
users/andraghetti/hrr-ci/resolver-v2
Oct 12, 2026
Merged

andraghetti merged 2 commits into
developfrom
users/andraghetti/hrr-ci/resolver-v2

Conversation

@andraghetti

Copy link
Copy Markdown
Contributor

Motivation

Since 30 Sep, every workflow that uses rocprofiler-sdk-util/resolve-ci-config has been running on the fallback runner labels. The therock-ci-config labels have not been used at all.

therock-ci-config removed the v1 config on 30 Sep (ROCm/therock-ci-config#48). #12474 switched the resolver to load_config(version=2). The next line still calls config.get_gpu_families(TRIGGER_TYPES), and v2 has no such method. The resolver catches the AttributeError and prints one warning per run:

::warning::Failed to load CI config: 'Config' object has no attribute 'get_gpu_families'. Using fallback runner labels.

The unit tests did not catch it because their mock of ci_config_api still served the v1 method.

Technical Details

  • resolve_ci_config.py reads config.get_gpu_runner_labels(). This is the v2 getter, already keyed by family and then by platform, so the rest of the function is unchanged. TRIGGER_TYPES no longer has a user and is removed.
  • test_resolve_ci_config.py now mocks the v2 API: runner-config-v2.json keyed by family, and get_gpu_runner_labels().

Against today's therock-ci-config main, two outputs change from their fallback values:

Output Fallback (today) Config (with this PR)
gfx90a_runner linux-gfx90a-gpu-rocm linux-gfx90a-1gpu-ossci-rocm
gfx94x_sandbox_runner linux-mi325-gpu-rocm-cpu-sandbox linux-gfx942-8gpu-asan-sandbox-rocm

All the other outputs are the same as the fallbacks. The sandbox change comes from ROCm/therock-ci-config#46. It moves the rocprofiler-sdk sanitizer jobs to the 8-GPU ASAN sandbox.

Issue Tracking

None.

Test Plan

  • Ran python -m unittest test_resolve_ci_config -v.
  • Negative control: with the old get_gpu_families(...) line restored, the same tests were run again.
  • Ran resolve_ci_config.py against ci_config_api.py and runner-config-v2.json from therock-ci-config main, with this branch and with develop.

Test Result

  • All 10 unit tests pass.
  • With the old line, 5 of the 10 tests fail, with the same warning that the CI logs show.
  • With the therock-ci-config files, this branch resolves every family from the config. develop prints the warning and uses the fallbacks.
  • On 5 Oct, a CI run with this fix ran the whole gfx90a HRR integration suite on the ossci MI250X pool in about 60 s. On the fallback hosts the same suite aborts, hangs or exceeds 1200 s.

Submission Checklist

therock-ci-config dropped Config.get_gpu_families() on 30 Sep
(aad3ef6985), so every resolve fell back to the hardcoded labels. For
gfx90a that is linux-gfx90a-gpu-rocm (smci250) instead of
linux-gfx90a-1gpu-ossci-rocm. Read get_gpu_runner_labels() instead.
The mock still served get_gpu_families(trigger_types), which
therock-ci-config dropped on 30 Sep, so the suite kept passing against
an API the resolver no longer calls. The mock now mirrors v2:
runner-config-v2.json keyed by family, and get_gpu_runner_labels().
TRIGGER_TYPES had no user left and goes with it.

With the resolver switched back to get_gpu_families, 5 of the 10 tests
fail.
@andraghetti
andraghetti requested a review from a team as a code owner October 6, 2026 21:17
@andraghetti
andraghetti requested review from geomin12 and venkat1361 and a balanced review from Copilot October 6, 2026 21:17
@therock-pr-bot

therock-pr-bot Bot commented Oct 6, 2026

Copy link
Copy Markdown

✅ All Policy Checks Passed

Check Status Details
📝 PR Description ✅ Pass —
⛔ Forbidden Files ✅ Pass —
🧪 Unit Test ✅ Pass —
🚫 Draft PR 🔜 To Be Enabled —
🚩 Feature Flag 🔜 To Be Enabled —
📊 Code Coverage 🔜 To Be Enabled —

🎉 All policy checks passed!

📖 Need help? See the Policy FAQ for details on every check and how to fix failures.

🙋 Wish to Override Policy?

Copilot AI 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.

Copilot review overview

🟢 Approval recommended

The implementation matches the upstream v2 API and updates the relevant test coverage consistently.

Review effort: Balanced
Findings: None

What changed in this PR

Updates CI runner resolution to use the therock-ci-config v2 API.

Changes:

  • Replaces the removed v1 GPU-family getter with get_gpu_runner_labels().
  • Updates unit-test fixtures and mocks to reflect the v2 schema.
File Description
resolve_ci_config.py Resolves GPU runner labels through the v2 API.
test_resolve_ci_config.py Tests runner resolution using v2 configuration fixtures.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@geomin12 geomin12 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

@andraghetti
andraghetti merged commit 9f520d1 into develop Oct 12, 2026
787 of 1002 checks passed
@andraghetti
andraghetti deleted the users/andraghetti/hrr-ci/resolver-v2 branch October 12, 2026 10:40
@systems-assistant

Copy link
Copy Markdown
Contributor

TheRock Submodule Bump Activity

Newest first

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants