Skip to content

github: multi-arch CI for ROCgdb - #295

Draft
lumachad wants to merge 6 commits into
amd-stagingfrom
users/lumachad/amd-staging/rocgdb-multi-arch-ci-v3
Draft

github: multi-arch CI for ROCgdb#295
lumachad wants to merge 6 commits into
amd-stagingfrom
users/lumachad/amd-staging/rocgdb-multi-arch-ci-v3

Conversation

@lumachad

Copy link
Copy Markdown
Collaborator

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.

  • Disable single-arch CI: removes the pull_request trigger from
    therock-ci.yml; the reusable chain (therock-ci-linux,
    therock-test-packages, therock-test-component) stays on disk and runnable
    via workflow_dispatch.
  • Register rocgdb as a TheRock external repo: adds
    .github/scripts/therock_matrix.py (single rocgdb project mapping to
    rocgdb-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.
  • Add 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 @main with
    automatic stage reuse, targets Linux gfx94X, gfx950, gfx125X, and runs on
    PRs to amd-staging and amd-staging-rocgdb-*.

configure_stage.py in TheRock injects the embedded-Python cmake options
(THEROCK_SHARED_PYTHON_EXECUTABLES / THEROCK_DIST_PYTHON_EXECUTABLES)
automatically, so the workflow keeps extra_cmake_options minimal
(-DTHEROCK_USE_EXTERNAL_ROCGDB=ON -DTHEROCK_BUILD_TESTING=ON -DTHEROCK_ENABLE_DEBUG_TOOLS=ON).

Open items to validate

  • gfx125X / MI455 is build only (test-runs-on: "") until its test runner
    is confirmed online.
  • rocgdb-corefile is defined in TheRock's fetch_test_configurations.py but
    not in test_policies.toml; confirm it actually runs (may need a test: label
    or a small upstream addition).
  • changed_projects resolves to empty for ROCgdb's root layout, so a normal PR
    runs the full rocgdb test set. Acceptable for now; can be scoped later.

Test plan

  • workflow_dispatch with linux_amdgpu_families=gfx94X to validate plumbing
    (external-rocgdb checkout, THEROCK_ROCGDB_SOURCE_DIR injection, rocgdb builds
    in the debug-tools stage, rocgdb test jobs appear and pass).
  • Full run across gfx94X,gfx950,gfx125X; confirm stage reuse hits a recent
    TheRock main baseline and MI455 is build only.
  • Confirm the disabled single-arch therock-ci.yml no longer triggers on PRs.

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.
@lumachad lumachad mentioned this pull request Aug 20, 2026
@lumachad lumachad self-assigned this Aug 20, 2026
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
lumachad force-pushed the users/lumachad/amd-staging/rocgdb-multi-arch-ci-v3 branch 2 times, most recently from edd8386 to 3c97a9c Compare August 20, 2026 10:19
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.
@lumachad

Copy link
Copy Markdown
Collaborator Author

Blocked on further multi-arch CI improvements.

@lumachad lumachad added the ci:skip Skip all pre-commit / CI jobs while the label is up label Aug 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci:skip Skip all pre-commit / CI jobs while the label is up

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant