Skip to content

Record verified NumPy 1.26 and WASM graph evidence #674

Record verified NumPy 1.26 and WASM graph evidence

Record verified NumPy 1.26 and WASM graph evidence #674

Workflow file for this run

name: Tests (WASM)
on: # same cadence as build.yml ("same as other tests")
push:
branches: ['**']
pull_request:
branches: [main]
env:
CIBW_BUILD_VERBOSITY: 1
jobs:
test_wasm:
name: Build & test WASM/Pyodide wheel (Python 3.14)
runs-on: ubuntu-latest
env:
CIBW_BUILD: "cp314-*"
CIBW_PYODIDE_VERSION: "314.0.0"
# WASM/Pyodide has no SIMD/runtime CPU detection; disable optimised paths
CMAKE_ARGS: "-DWITH_ZLIB_OPTIM=OFF -DWITH_OPTIM=OFF -DWITH_RUNTIME_CPU_DETECTION=OFF"
# cibuildwheel runs the suite automatically in the node/pyodide runtime
CIBW_TEST_COMMAND: >-
pytest {project}/tests &&
python {project}/scripts/certify_menudet_math.py &&
python {project}/scripts/verify_safe_lazyexpr.py
steps:
- uses: actions/checkout@v7
- uses: actions/setup-python@v7
with:
python-version: '3.x'
- name: Install build dependencies
run: sudo apt-get update && sudo apt-get install -y cmake
- name: Install cibuildwheel
run: pip install "cibuildwheel==4.1.*"
- name: Build and test wheel
run: |
set -o pipefail
cibuildwheel --platform pyodide 2>&1 | tee wasm-ci.log
- name: Extract safe-graph runtime evidence
if: always()
run: |
python - <<'PY'
import json
from pathlib import Path
log = Path("wasm-ci.log")
if log.exists():
text = log.read_text()
marker = '{\n "scope": "bounded experimental safe-graph corpus;'
start = text.rfind(marker)
if start >= 0:
report, _ = json.JSONDecoder().raw_decode(text[start:])
Path("safe-lazyexpr-wasm.json").write_text(json.dumps(report, indent=2) + "\n")
PY
- name: Upload WASM platform evidence
if: always()
uses: actions/upload-artifact@v4
with:
name: safe-lazyexpr-wasm
path: |
safe-lazyexpr-wasm.json
wasm-ci.log
if-no-files-found: ignore