Skip to content

Add nightly build workflow for ROCgdb master branch - #120

Merged
lumachad merged 1 commit into
amd-stagingfrom
users/lumachad/amd-staging/github/build_master
Sep 2, 2026
Merged

Add nightly build workflow for ROCgdb master branch#120
lumachad merged 1 commit into
amd-stagingfrom
users/lumachad/amd-staging/github/build_master

Conversation

@lumachad

@lumachad lumachad commented May 8, 2026

Copy link
Copy Markdown
Collaborator

Adds a scheduled nightly build that tests ROCgdb master against the
current TheRock dependency pins, with GPU, CPU, and corefile test
coverage.

Changes:

  • Add nightly-build.yml: runs at 2:07 AM UTC daily; manually
    dispatchable with a configurable ROCgdb branch/ref (defaults to
    master)
  • Mirror PR CI build topology: dcgpu-all;dgpu-all;igpu-all with
    multiarch bundle name, runner selected via select_runner.py
  • Add concurrency group to prevent overlapping cron/dispatch runs
  • Enable upstream builds with THEROCK_ROCGDB_UPSTREAM_BUILD=ON to
    skip AMD-specific files absent on master (NOTICES.txt,
    roccoremerge); add THEROCK_ROCGDB_DOWNLOAD_CI_SCRIPT=ON to fetch
    test_rocgdb.py from amd-staging (not present on master)
  • Run GPU (gfx94X), CPU (gfx94X, gfx-independent), and corefile
    (gfx942) tests against the nightly artifacts
  • Add rocgdb_ref input to therock-ci-linux.yml to allow nightly
    builds to check out a specific ROCgdb branch or ref; fallback
    uses github.sha to preserve PR CI's pinned-SHA checkout semantics
  • Echo rocgdb_ref and HEAD commit in build log for traceability

Master nightlies run without rocgdb_ignore_list.json (not fetched
by DOWNLOAD_CI_SCRIPT); known gdb.dwarf2 xfails will appear as
unexpected failures. This is accepted: the nightly is an
informational signal, not a gate.

PR-based CI is unchanged.

@lumachad lumachad self-assigned this May 8, 2026
@lumachad lumachad added the ci:skip Skip all pre-commit / CI jobs while the label is up label May 8, 2026
@lumachad

Copy link
Copy Markdown
Collaborator Author

Blocked on:

@lumachad
lumachad force-pushed the users/lumachad/amd-staging/github/build_master branch from 939e4d6 to 81b8002 Compare August 27, 2026 12:37
@lumachad lumachad changed the title Add nightly build workflow and refactor CI for branch flexibility Add nightly build workflow for ROCgdb master branch Aug 27, 2026
@lumachad
lumachad force-pushed the users/lumachad/amd-staging/github/build_master branch from 81b8002 to 2348c39 Compare August 27, 2026 12:41
@lumachad
lumachad marked this pull request as ready for review August 27, 2026 12:45
@lumachad
lumachad requested a review from a team as a code owner August 27, 2026 12:45
@lumachad
lumachad force-pushed the users/lumachad/amd-staging/github/build_master branch 3 times, most recently from 17d71a9 to 8221158 Compare August 27, 2026 12:56
@lumachad lumachad removed the ci:skip Skip all pre-commit / CI jobs while the label is up label Aug 27, 2026
@lumachad lumachad assigned spatrang and unassigned lumachad Aug 27, 2026

@spatrang spatrang 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.

Review summary

Nightly CI for master against current TheRock pins is the right idea, and the workflow shape (resolve → reusable build → GPU/CPU/corefile → summary) matches PR CI. A few issues should be fixed before merge; one looks like a hard configure failure on master.

PR CI on this branch is green, but that only exercises therock-ci.yml with rocgdb_ref unset. nightly-build.yml is schedule/dispatch only and has not been run.

Blocker

  • Missing -DTHEROCK_ROCGDB_DOWNLOAD_CI_SCRIPT=ON. THEROCK_ROCGDB_UPSTREAM_BUILD does not fetch test_rocgdb.py. master has no .github/ tree, so configure will FATAL_ERROR with THEROCK_BUILD_TESTING=ON.

High

  • Dispatch this workflow from the PR branch after the CMake fix and confirm it actually checks out master.
  • rocgdb_ignore_list.json is also missing on master (TheRock only warns and skips it). Decide whether to fetch/install it or accept raw xfails on nightly.

Medium

  • Build still uses pre-#300 gfx94X-dcgpu while PR CI builds multi-arch.
  • No build_runs_on / select_runner.py (falls back to aws-linux-scale-rocm-prod).
  • Checkout fallback should be github.sha, not github.ref.
  • No concurrency group.

Low

  • Extra CMake flags will drift from therock-ci.yml; a “keep in sync except …” comment would help.
  • Tests should take therock_ref from the build job output.
  • AWS configure if is PR-shaped (!github.event.pull_request.head.repo.fork). Empty pull_request on schedule should still be truthy for !fork, but confirm artifact push on the first dispatch.
  • Echo rocgdb_ref in the build log so it is obvious which branch was built.
  • The May 19 “blocked on #130” comment is stale (#300 landed); please resolve that thread.

Merge bar

  1. Add -DTHEROCK_ROCGDB_DOWNLOAD_CI_SCRIPT=ON.
  2. Decide ignore-list behavior for master.
  3. workflow_dispatch nightly from this branch; confirm configure, master checkout, artifact push, and GPU/CPU/corefile.
  4. Confirm or document gfx94X-dcgpu vs multi-arch, and whether build_runs_on should match PR CI.

Comment thread .github/workflows/nightly-build.yml
Comment thread .github/workflows/nightly-build.yml Outdated
Comment thread .github/workflows/nightly-build.yml
Comment thread .github/workflows/therock-ci-linux.yml Outdated
Comment thread .github/workflows/nightly-build.yml Outdated
@lumachad
lumachad force-pushed the users/lumachad/amd-staging/github/build_master branch 2 times, most recently from 131321d to 012946e Compare August 27, 2026 17:20
@lumachad

Copy link
Copy Markdown
Collaborator Author

therock-ci.yml temporarily overwritten for validation purposes. If this looks OK, we'll drop the second commit.

@spatrang spatrang 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.

Round 2 review

Round-1 workflow comments are addressed in ac903dcd (CMake flags, multi-arch, runner selection, concurrency, github.sha, therock_ref from the build). A dispatch of the nightly path (run 33095027788) built master successfully — so the previous configure blocker is gone.

That run also showed the nightly as designed will be red every night unless a few test-policy gaps are fixed. The WIP commit is still on HEAD and must not land.

Round-1 follow-up

Item Status
THEROCK_ROCGDB_DOWNLOAD_CI_SCRIPT=ON Fixed and validated (build succeeded, test_rocgdb.py ran from artifacts)
Multi-arch + select_runner.py Fixed
Concurrency Fixed
Checkout fallback github.sha Fixed
therock_ref from build output Fixed (run output matched the pin)
Ignore list Not fixed; now evidenced — CPU is red only on known amd-staging xfails

Blocker

  • Drop 012946ee (WIP: overwrite therock-ci.yml…) before merge. It replaces PR CI with the nightly workflow and removes the pull_request trigger (this push only ran pre-commit). Keep the useful Show rocGDB ref step from that commit in therock-ci-linux.yml.

High

  • CPU will fail every night without rocgdb_ignore_list.json. The 6 unexpected failures are exactly the amd-staging LLVM xfail list. Fetch/install that file with the CI script.
  • Corefile will fail every night on master: those gdb.rocm/corefile*.exp files exist only on amd-staging. Dispatch error: Missing or invalid test file: gdb.rocm/corefile.exp. Skip test-corefile for master (or only invoke tests that exist in the tree).
  • GPU had a real 1-test fail (gdb.rocm/displaced-stepping.exp). That is useful nightly signal; it is not on the ignore list. Fine to leave failing, or xfail it explicitly.

Merge bar

  1. Drop the WIP commit; restore therock-ci.yml; keep Show rocGDB ref.
  2. Install the ignore list (CPU) and stop running missing corefile tests on master.
  3. Re-dispatch (or wait for a PR CI run of the restored workflow) and confirm: build of master green, CPU green with xfails, corefile skipped or green, GPU = the displaced-stepping result you want.

Comment thread .github/workflows/therock-ci.yml Outdated
Comment thread .github/workflows/nightly-build.yml Outdated
Comment thread .github/workflows/nightly-build.yml
@lumachad
lumachad force-pushed the users/lumachad/amd-staging/github/build_master branch from 012946e to ac903dc Compare August 27, 2026 22:08
@lumachad
lumachad requested a review from spatrang August 27, 2026 22:09
@lumachad
lumachad force-pushed the users/lumachad/amd-staging/github/build_master branch from ac903dc to 7197651 Compare August 27, 2026 22:10
@lumachad

Copy link
Copy Markdown
Collaborator Author

@spatrang Thanks for the reviews. I think this version should be OK.

@spatrang spatrang 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.

Round 3 — approve

WIP is gone (71976512 only; therock-ci.yml restored). PR CI is green (build + GPU/CPU/corefile + extended jobs). Round-1 workflow fixes are in:

  • THEROCK_ROCGDB_DOWNLOAD_CI_SCRIPT=ON + UPSTREAM_BUILD=ON
  • Multi-arch build + select_runner.py / build_runs_on
  • Concurrency group
  • Checkout fallback github.sha
  • Tests use needs.nightly-rocgdb-build-linux.outputs.therock_ref

Author’s policy on the remaining red nightly legs (no ignore list; corefile tests missing on master) is accepted: this workflow is informational and does not gate PRs. Dispatch already proved the build of master works.

Nit (non-blocking): the commit message mentions echoing rocgdb_ref / HEAD in the build log, but that step did not land in therock-ci-linux.yml. Optional follow-up.

LGTM.

Adds a scheduled nightly build that tests ROCgdb master against the
current TheRock dependency pins, with GPU and CPU test coverage.

Changes:
- Add nightly-build.yml: scheduled (2:07 AM UTC) and manually
  dispatchable workflow that builds ROCgdb master via TheRock and
  runs the test suite (GPU on gfx94X, CPU on gfx94X)
- Mirror PR CI build topology (dcgpu-all;dgpu-all;igpu-all,
  multiarch bundle name, select_runner.py for runner selection)
- Add concurrency group to prevent overlapping runs
- Enable upstream builds with THEROCK_ROCGDB_UPSTREAM_BUILD=ON to
  skip AMD-specific files absent on master; add
  THEROCK_ROCGDB_DOWNLOAD_CI_SCRIPT=ON to fetch test_rocgdb.py
  from amd-staging (not present on master)
- Add rocgdb_ref input to therock-ci-linux.yml to allow nightly
  builds to check out a specific ROCgdb branch or ref; fallback
  preserves PR CI's pinned-SHA checkout semantics (github.sha)
- Echo rocgdb_ref and HEAD commit in build log for traceability

Corefile tests are not included: master gdb has no GPU corefile tests.

PR-based CI is unchanged.
@lumachad
lumachad force-pushed the users/lumachad/amd-staging/github/build_master branch from 7197651 to c08fa53 Compare September 1, 2026 13:35
@lumachad

lumachad commented Sep 1, 2026

Copy link
Copy Markdown
Collaborator Author

@spatrang Now dropped the rocgdb-corefile tests from the nightly. At least until we can have comparable tests on upstream master.

@lumachad
lumachad merged commit 6b2105d into amd-staging Sep 2, 2026
27 checks passed
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.

2 participants