Repository navigation
CI: mark the runtime-api chip path NOT_RUN (Refs #189) - #197
Conversation
Co-authored-by: Drake Stapleton <[email protected]>
drakestapleton
left a comment
There was a problem hiding this comment.
Review at b360938: ready to merge once CI is green. At review time only library had passed; runtime-api (run 41074758124) was in progress and everything else was queued.
Scope. There's one file, .github/workflows/runtime-api.yml (+18/−3), and it stays inside the existing runtime-api job.
- L2-6: header comment.
- L25-35: the existing step is wrapped so the exit code is kept and the last line has to match
RESULT: PASS (…). - L36-38: a new print-only step.
Triggers, runner, permissions, checkout pin and the semver step are unchanged. ci.yml and host.yml are untouched, so this is no rewrite.
NOT_RUN and fake-green check
- L25-35 is stricter than before. A non-zero rc is propagated (L30), and an exit 0 without a final PASS line fails (L33-34). There's no
continue-on-error, no|| trueand noif:skip.|| rc=$?at L28 is captured and then re-raised. - L36-38 only prints
NOT_RUN. It's honest, but it shows as a green step named "GB10 sm_121 chip execution" in the Checks UI. Optional: rename it to something like "GB10 sm_121 chip execution (NOT_RUN)", or write the line to$GITHUB_STEP_SUMMARY, so a green tick isn't read as a chip pass. - L46-47 is pre-existing and outside this diff: if the base has no manifest, the step exits 0 and prints NOT_RUN. That's a host skip, not a chip claim, so it's fine as is.
- The body makes no GB10 behavior claim. The evidence is an x86_64 host run only, with GB10 marked NOT_RUN. That matches #189's done-when.
Fit with #90 and #196. There's no shared file or job, and the check name runtime-api is unique. I'm assuming #90 edits ci.yml host-tests and #196 adds an x86 job, which both need to be named apart from host-tests and runtime-api. The only coupling is the L5 comment pointing at the #196 job. Suggested merge order: this PR, then #196, then #90. This PR is independent and smallest; #196 and #90 are both likely to touch ci.yml, so whichever merges second rebases.
Follow-ups. The body lists none: "No source failure turned up, so there is no candidate follow-up issue."
— Grokbot
… Grokbot Co-authored-by: Drake Stapleton <[email protected]>
drakestapleton
left a comment
There was a problem hiding this comment.
Re-review at d71ac1c: ready to merge.
-
Fast-forward. Comparing b360938 with d71ac1c shows
ahead_by 1, behind_by 0, so the branch wasn't force-pushed. The new commit only touches.github/workflows/runtime-api.yml, +2/-2:- L36: the step is renamed to
GB10 sm_121 chip execution (NOT_RUN). - L38: the same
printfNOT_RUN line now goes through| tee -a "$GITHUB_STEP_SUMMARY".
Nothing else changed. The PR's recorded base is still 522ee0d. Main has since moved with #199, but GitHub reports the PR as mergeable
clean, with no conflicts. - L36: the step is renamed to
-
CI. All 12 checks at d71ac1c are green:
runtime-apirun 41075608687 (job 124130836358; its head_sha is d71ac1c), ci run 41075608852, hello-sim 41075608714, library 41075608711, drift 41075608712, and CodeQL 41075599653. -
Log. In job 124130836358, step 5
GB10 sm_121 chip execution (NOT_RUN)concluded success. At 14:57:32Z (9:57 AM CT) the log printedGB10 sm_121 chip execution: NOT_RUN (host manifest check only; /dev/nvidia0, /dev/nvidia-uvm and /dev/aien-gpu stay closed)undershell: /usr/bin/bash -e {0}, and there was no error.teeis the last command in the pipe, so if the summary write failed, the step would fail. -
Fake-green check. It's clean: no
continue-on-error,|| trueorif:skip, andRESULT: PASSis still enforced by the case at L33-35. GB10 stays NOT_RUN, and the PR makes no chip claim.
— Grokbot
Purpose and scope
Refs #189. ADR 0043 leaves the imported C runtime frozen and keeps the versioned public API in this repo. The host gate for that surface is
make test-runtime-api.That command was already a CI job before this PR.
.github/workflows/runtime-api.yml(added in342db51) runs it on every pull request and on pushes tomain, on GitHub-hostedubuntu-24.04-arm, which has no GB10. The last green run on main before this branch is Actions run 41073733502 at522ee0d(RESULT: PASS).This PR only changes that workflow file:
make test-runtime-api, and it fails unless the log ends withRESULT: PASS (...).GB10 sm_121 chip execution: NOT_RUN. The job does not open/dev/nvidia0,/dev/nvidia-uvmor/dev/aien-gpu, and a host pass is not a chip pass.make test-runtime-api-semverstill compares the manifest with the pull request base (or the previous commit on a main push).No frozen C under ADR 0043, no
src/omega_cubin.*, noom/cubin/, and no file from PR #170.How this sits with #90 and #196
This stays a separate workflow. It does not edit
ci.ymlorhost.yml.make testin the existing arm64host-testsjob. That suite already liststest-runtime-apias one row. It does not runtest-runtime-api-semveragainst the pull request base.ubuntu-latest. When that job runsmake test, it will runtest-runtime-apiagain on x86-64. It will not run the semver-against-base step.make test-runtime-apiis below. A duplicate x86 job is left to CI: add an x86-64 host-tests job (portable suite + freestanding link) #196.Evidence on the exact commit
git rev-parse HEAD:b3609380179b96c0d2eb6ec33026edceb21e2bff(parent522ee0d).PR job: runtime-api on
ubuntu-24.04-arm, pass in 56s. Log lines:RESULT: PASS (runtime API 0.6.0: 295 functions, 45 structs, 420 fields, 211 constants match the headers; surface 698 names, 192 INTERNAL)RESULT: PASS (every negative control was caught)GB10 sm_121 chip execution: NOT_RUN (host manifest check only; /dev/nvidia0, /dev/nvidia-uvm and /dev/aien-gpu stay closed)RESULT: PASS (version 0.6.0 -> 0.6.0; the entry changes need none)Same commands on this VM before push: Linux x86_64,
gcc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0,/dev/nvidia0and/dev/aien-gpuabsent.make test-runtime-apiexit 0 with the same twoRESULT: PASSlines.make test-runtime-api-semver RUNTIME_API_BASE=HEADexit 0 withRESULT: PASS (version 0.6.0 -> 0.6.0; the entry changes need none). No new receipt folder: the check prints its own result line.make test-runtime-api(host-only) — PASS, locally and in the PR job above.make test-runtime-api-semveragainst the base — PASS in the PR job (0.6.0 -> 0.6.0, no entry change).make test(host-only) — NOT RUN. Unchanged by this diff; still thehost-testsjob inci.yml.make test-native-artifact(host-only) — NOT RUN. Out of scope.make zero-cuda-gate(ELF audit and negative control) — NOT RUN. Out of scope.build/hello_gpu --sim(simulator only) — NOT RUN. Out of scope.make doctor(diagnostic; NOT READY on unsupported machines is expected) — NOT RUN. Out of scope./dev/aien-gpu.Correctness, compatibility and provenance
tools/runtime_api_negative.shrun insidemake test-runtime-api. The new check is that a zero exit still ends onRESULT: PASS.Known limitations
The job passes the host manifest check. It does not qualify the runtime on a GB10. No source failure turned up, so there is no candidate follow-up issue.
— Grokbot