Two independent defects in the CUDA syntax job, both caught on its first run.
1. `cuda: '12.6.3'` — Jimver/cuda-toolkit@v0.2.19's version table stops at
12.6.2, so the install step died with "Version not available: 12.6.3"
before nvcc was ever invoked. One digit.
2. `nvcc ... 2>&1 | head -40` — a pipeline exits with the status of its LAST
command, so head's 0 masked every nvcc error. The job printed "CUDA syntax
check passed" unconditionally: it could not fail. Defect 1 is why we found
out, since it broke the step *before* the pipe.
The second one is the one that matters. backend_cuda.cu is compiled by nothing
else in this repo — no local build, no test — so this job is the only thing
standing between a CUDA change and a user's GPU. A check that cannot fail is
worse than no check: it buys false confidence in exactly the file that most
needs the real thing. #298 spent a night debugging CUDA against no oracle at
all; this job is supposed to be that oracle.
It is also, precisely, the disease of the week in YAML form: a signal that
measures its own intention rather than the thing it claims to measure. See the
`~335 GB I/O saved` counter that counted dropped experts instead of bytes not
read (#303), and `route_agree: 95.3%` cited as "quality preserved" when it
only measures which experts coincide.
The other three jobs (engine, web, python) passed on the first run.
Co-Authored-By: ZacharyZcR <#144>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The repo's own dependency-free gate, on the three claimed platforms, for
every PR and push to main/dev. The windows job is the one that would have
caught #68/#137 pre-merge. No CUDA, no Metal, no model downloads in v1.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Four jobs, all fast, all free on public repos:
- engine: make glm + make test-c (Linux, CPU, native arch)
- engine-cuda-syntax: nvcc compile-only check (no GPU needed, catches
backend_cuda.cu syntax/type errors before they reach a real machine)
- web: npm ci + build + vitest (Node 22, cached deps)
- python: unittest discover on c/tests/test_*.py (Python 3.12)
Triggers on push/PR to dev and main. No 20-minute pipelines — the whole
matrix finishes in under 3 minutes on GitHub-hosted runners.