ci: run the checks on main too (#144)

@ZacharyZcR's workflow, already green on dev (78c77bf): engine + C suite,
web build + vitest, python suite, and a real CUDA syntax check.

Only the workflow file is cherry-picked here — main's engine code stays at
54cfe56 and nothing else from dev comes along. main is where the checks are
worth the most and where they were missing entirely.

Includes the two fixes the first run exposed: the pinned action's version
table stops at 12.6.2 (12.6.3 failed the install), and `nvcc ... | head -40`
took its exit status from head, so the job could never fail.

Co-Authored-By: ZacharyZcR <#144>

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
JustVugg
2026-07-16 19:39:40 +02:00
parent 54cfe56324
commit 72d3d37231
+72
View File
@@ -0,0 +1,72 @@
name: CI
on:
pull_request:
branches: [dev, main]
push:
branches: [dev, main]
jobs:
engine:
name: Engine (Linux, CPU)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build glm
run: cd c && make glm
- name: C test suite
run: cd c && make test-c
engine-cuda-syntax:
name: CUDA syntax check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install CUDA toolkit (compiler only)
uses: Jimver/cuda-toolkit@v0.2.19
with:
# v0.2.19's version table stops at 12.6.2 — 12.6.3 fails the install
# step with "Version not available" before nvcc is ever reached.
cuda: '12.6.2'
method: network
sub-packages: '["nvcc"]'
- name: Compile backend_cuda.cu (syntax only, no GPU)
run: |
cd c
# NOT `nvcc ... | head -40`: a pipeline exits with the status of its
# LAST command, so head's 0 masked every nvcc error and the job could
# only ever be green. A check that cannot fail is worse than no check —
# it buys false confidence in the one file nothing else compiles.
nvcc -O2 -std=c++17 -arch=sm_80 -c backend_cuda.cu -o /dev/null \
-Xcompiler=-Wall,-Wextra
echo "CUDA syntax check passed"
web:
name: Web UI
runs-on: ubuntu-latest
defaults:
run:
working-directory: web
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '22'
cache: npm
cache-dependency-path: web/package-lock.json
- run: npm ci
- name: Build
run: npm run build
- name: Test
run: npx vitest run
python:
name: Python tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Python test suite
run: cd c && python3 -m unittest discover -s tests -p 'test_*.py'