github: multi-arch CI for ROCgdb - #295
Draft
lumachad wants to merge 6 commits into
Draft
Conversation
Remove the pull_request trigger from therock-ci.yml so the single-arch presubmit chain (therock-ci-linux, therock-test-packages, therock-test-component) no longer runs automatically. It is superseded by the new multi-arch workflow. The files are kept and remain runnable via workflow_dispatch.
Add the two files TheRock's detect_external_repo_config.py requires to treat
ROCgdb as a valid external repo:
* .github/scripts/therock_matrix.py: a single rocgdb project mapping to the
rocgdb-cpu, rocgdb-gpu and rocgdb-corefile tests (read by get_test_list).
* .github/repos-config.json: the rocgdb repository entry used by
configure_external_repo_ci.py.
The existing therock_configure_ci.py already exports SKIPPABLE_PATH_PATTERNS,
satisfying the remaining external repo requirement.
Closed
Add therock-multi-arch-ci.yml, which builds and tests ROCgdb across multiple GPU architectures by calling TheRock's reusable multi-arch workflows (setup_multi_arch.yml and multi_arch_ci_linux.yml) with ROCgdb passed as an external repo. The workflow tracks ROCm/TheRock@main with automatic stage reuse, targets the Linux gfx94X, gfx950 and gfx125X families, and runs on pull requests to amd-staging and amd-staging-rocgdb-* branches. gfx125X (MI455) is build only until its test runner is confirmed online.
lumachad
force-pushed
the
users/lumachad/amd-staging/rocgdb-multi-arch-ci-v3
branch
2 times, most recently
from
August 20, 2026 10:19
edd8386 to
3c97a9c
Compare
Temporarily point setup and linux workflow uses: refs at users/lumachad/main/stage-reuse-timing to collect timing data on the slow "Configuring CI options" step (4+ minutes in PR #295). TheRock PR: ROCm/TheRock#7526
The previous commit only updated the workflow definition ref (@...) but not the ref: build input, so the runner still checked out TheRock@main for the Python scripts. Point both ref: inputs at the timing branch so the instrumented configure_multi_arch_ci.py, baseline_runs.py, and stage_reuse_decision.py are actually executed.
Use users/lumachad/main/stage-reuse-timing for the Python scripts (which have [TIMING]/[BASELINE]/[STAGE-REUSE] instrumentation), but pass main's current tip SHA (48d493e6) as stage_reuse_current_sha so the commit-ancestry check runs against real main history rather than our branch tip, reproducing the actual slow path.
Collaborator
Author
|
Blocked on further multi-arch CI improvements. |
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.
Summary
Replaces ROCgdb's single-arch presubmit with a multi-arch pipeline modeled on
rocm-systems, calling TheRock's reusable multi-arch workflows directly with
ROCgdb passed as an external repo.
therock-ci.yml; the reusable chain (therock-ci-linux,therock-test-packages,therock-test-component) stays on disk and runnablevia
workflow_dispatch..github/scripts/therock_matrix.py(single rocgdb project mapping torocgdb-cpu,rocgdb-gpu,rocgdb-corefile) and.github/repos-config.json.TheRock already knows how to build (
external-rocgdb,THEROCK_ROCGDB_SOURCE_DIR) and test rocgdb, so no upstream changes are needed.therock-multi-arch-ci.yml:configure->setup(
setup_multi_arch.yml@main) ->linux_build_and_test(
multi_arch_ci_linux.yml@main) -> summary. Tracks TheRock@mainwithautomatic stage reuse, targets Linux
gfx94X,gfx950,gfx125X, and runs onPRs to
amd-stagingandamd-staging-rocgdb-*.configure_stage.pyin TheRock injects the embedded-Python cmake options(
THEROCK_SHARED_PYTHON_EXECUTABLES/THEROCK_DIST_PYTHON_EXECUTABLES)automatically, so the workflow keeps
extra_cmake_optionsminimal(
-DTHEROCK_USE_EXTERNAL_ROCGDB=ON -DTHEROCK_BUILD_TESTING=ON -DTHEROCK_ENABLE_DEBUG_TOOLS=ON).Open items to validate
test-runs-on: "") until its test runneris confirmed online.
fetch_test_configurations.pybutnot in
test_policies.toml; confirm it actually runs (may need atest:labelor a small upstream addition).
runs the full rocgdb test set. Acceptable for now; can be scoped later.
Test plan
workflow_dispatchwithlinux_amdgpu_families=gfx94Xto validate plumbing(external-rocgdb checkout,
THEROCK_ROCGDB_SOURCE_DIRinjection, rocgdb buildsin the debug-tools stage, rocgdb test jobs appear and pass).
gfx94X,gfx950,gfx125X; confirm stage reuse hits a recentTheRock main baseline and MI455 is build only.
therock-ci.ymlno longer triggers on PRs.