Skip to content

CI: mark the runtime-api chip path NOT_RUN (Refs #189) - #197

Merged
drakestapleton merged 2 commits into
mainfrom
cursor/runtime-api-ci-fb73
Oct 30, 2026
Merged

drakestapleton merged 2 commits into
mainfrom
cursor/runtime-api-ci-fb73

Conversation

@drakestapleton

@drakestapleton drakestapleton commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

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 in 342db51) runs it on every pull request and on pushes to main, on GitHub-hosted ubuntu-24.04-arm, which has no GB10. The last green run on main before this branch is Actions run 41073733502 at 522ee0d (RESULT: PASS).

This PR only changes that workflow file:

  • The job still runs make test-runtime-api, and it fails unless the log ends with RESULT: PASS (...).
  • A following step prints GB10 sm_121 chip execution: NOT_RUN. The job does not open /dev/nvidia0, /dev/nvidia-uvm or /dev/aien-gpu, and a host pass is not a chip pass.
  • make test-runtime-api-semver still 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.*, no om/cubin/, and no file from PR #170.

How this sits with #90 and #196

This stays a separate workflow. It does not edit ci.yml or host.yml.

Evidence on the exact commit

git rev-parse HEAD: b3609380179b96c0d2eb6ec33026edceb21e2bff (parent 522ee0d).

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/nvidia0 and /dev/aien-gpu absent. make test-runtime-api exit 0 with the same two RESULT: PASS lines. make test-runtime-api-semver RUNTIME_API_BASE=HEAD exit 0 with RESULT: 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-semver against 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 the host-tests job in ci.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.
  • GB10 hardware tests, only if an authorized GPU window is available (otherwise NOT RUN) — NOT RUN. The workflow step reports that. This VM has no GB10 and no /dev/aien-gpu.

Correctness, compatibility and provenance

  • Negative controls and affected contracts are documented. The negative controls are the existing tools/runtime_api_negative.sh run inside make test-runtime-api. The new check is that a zero exit still ends on RESULT: PASS.
  • API/ABI and Omega consumer effects are identified; source and runtime status claims are not overstated. No header, manifest or ABI change. The chip path is NOT_RUN, not PASS.
  • Third-party material, licensing, and public-history safety were checked for additions. Workflow comment and shell only.
  • No secrets, personal machine paths, private addresses, other processes' logs, vendor binaries, or unauthorized generated artifacts were included.
  • Existing receipts remain immutable; new results have their own evidence folder. No receipt was edited. None was added.

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

Open in Web Open in Cursor 

@drakestapleton drakestapleton left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 || true and no if: 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

@drakestapleton drakestapleton left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 printf NOT_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.

  • CI. All 12 checks at d71ac1c are green: runtime-api run 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 printed GB10 sm_121 chip execution: NOT_RUN (host manifest check only; /dev/nvidia0, /dev/nvidia-uvm and /dev/aien-gpu stay closed) under shell: /usr/bin/bash -e {0}, and there was no error. tee is 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, || true or if: skip, and RESULT: PASS is still enforced by the case at L33-35. GB10 stays NOT_RUN, and the PR makes no chip claim.

— Grokbot

@drakestapleton
drakestapleton merged commit bac7330 into main Oct 30, 2026
12 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