Add nightly build workflow for ROCgdb master branch - #120
Conversation
|
Blocked on: |
939e4d6 to
81b8002
Compare
81b8002 to
2348c39
Compare
17d71a9 to
8221158
Compare
spatrang
left a comment
There was a problem hiding this comment.
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_BUILDdoes not fetchtest_rocgdb.py.masterhas no.github/tree, so configure willFATAL_ERRORwithTHEROCK_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.jsonis also missing onmaster(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-dcgpuwhile PR CI builds multi-arch. - No
build_runs_on/select_runner.py(falls back toaws-linux-scale-rocm-prod). - Checkout fallback should be
github.sha, notgithub.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_reffrom the build job output. - AWS configure
ifis PR-shaped (!github.event.pull_request.head.repo.fork). Emptypull_requestonscheduleshould still be truthy for!fork, but confirm artifact push on the first dispatch. - Echo
rocgdb_refin 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
- Add
-DTHEROCK_ROCGDB_DOWNLOAD_CI_SCRIPT=ON. - Decide ignore-list behavior for
master. workflow_dispatchnightly from this branch; confirm configure,mastercheckout, artifact push, and GPU/CPU/corefile.- Confirm or document
gfx94X-dcgpuvs multi-arch, and whetherbuild_runs_onshould match PR CI.
131321d to
012946e
Compare
|
therock-ci.yml temporarily overwritten for validation purposes. If this looks OK, we'll drop the second commit. |
spatrang
left a comment
There was a problem hiding this comment.
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 thepull_requesttrigger (this push only ran pre-commit). Keep the usefulShow rocGDB refstep from that commit intherock-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: thosegdb.rocm/corefile*.expfiles exist only onamd-staging. Dispatch error:Missing or invalid test file: gdb.rocm/corefile.exp. Skiptest-corefilefor 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
- Drop the WIP commit; restore
therock-ci.yml; keepShow rocGDB ref. - Install the ignore list (CPU) and stop running missing corefile tests on master.
- Re-dispatch (or wait for a PR CI run of the restored workflow) and confirm: build of
mastergreen, CPU green with xfails, corefile skipped or green, GPU = the displaced-stepping result you want.
012946e to
ac903dc
Compare
ac903dc to
7197651
Compare
|
@spatrang Thanks for the reviews. I think this version should be OK. |
spatrang
left a comment
There was a problem hiding this comment.
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.
7197651 to
c08fa53
Compare
|
@spatrang Now dropped the rocgdb-corefile tests from the nightly. At least until we can have comparable tests on upstream master. |
Adds a scheduled nightly build that tests ROCgdb master against the
current TheRock dependency pins, with GPU, CPU, and corefile test
coverage.
Changes:
dispatchable with a configurable ROCgdb branch/ref (defaults to
master)
multiarch bundle name, runner selected via select_runner.py
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)
(gfx942) tests against the nightly artifacts
builds to check out a specific ROCgdb branch or ref; fallback
uses github.sha to preserve PR CI's pinned-SHA checkout semantics
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.