Skip to content

harden(compute): spin_pool chunk-size underflow + production-shape st… #168

harden(compute): spin_pool chunk-size underflow + production-shape st…

harden(compute): spin_pool chunk-size underflow + production-shape st… #168

Workflow file for this run

# larql-compute cross-platform CI
#
# Validates the CPU baseline on Linux, Windows, and macOS. After the
# Metal extraction (ADR-019), this workflow is CPU-only — Metal GPU
# validation lives in `.github/workflows/larql-compute-metal.yml`.
name: larql-compute
on:
push:
branches: [main]
paths:
- 'crates/larql-compute/**'
- 'crates/larql-models/**'
- 'Cargo.toml'
- 'Cargo.lock'
- 'Makefile'
- '.github/workflows/larql-compute.yml'
pull_request:
branches: [main]
paths:
- 'crates/larql-compute/**'
- 'crates/larql-models/**'
- 'Cargo.toml'
- 'Cargo.lock'
- 'Makefile'
- '.github/workflows/larql-compute.yml'
workflow_dispatch: {}
jobs:
test:
name: test · ${{ matrix.os }}
runs-on: ${{ matrix.os }}
timeout-minutes: 35
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-14]
steps:
- uses: actions/checkout@v6
- name: Install stable Rust
uses: dtolnay/rust-toolchain@stable
with:
components: clippy, rustfmt
- name: Install OpenBLAS (Linux)
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y libopenblas-dev pkg-config
- name: Install OpenBLAS (Windows)
if: runner.os == 'Windows'
shell: pwsh
run: |
$root = $env:VCPKG_INSTALLATION_ROOT
if (-not $root) {
$root = 'C:\vcpkg'
}
& "$root\vcpkg.exe" install openblas:x64-windows
"VCPKG_ROOT=$root" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
"$root\installed\x64-windows\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
- name: Cache cargo registry + build artefacts
uses: actions/cache@v5
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-compute-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-cargo-compute-
- name: Format check
run: cargo fmt -p larql-compute -- --check
- name: Check default features
run: cargo check -p larql-compute --all-targets
- name: Check all features
run: cargo check -p larql-compute --all-targets --all-features
- name: Clippy default features
# `--no-deps` so warnings in sibling crates' in-flight work do
# not promote to errors here; matches the local `make
# larql-compute-lint` target.
run: cargo clippy -p larql-compute --all-targets --no-deps -- -D warnings
- name: Clippy all features
run: cargo clippy -p larql-compute --all-targets --no-deps --all-features -- -D warnings
- name: Unit tests
run: cargo test -p larql-compute --lib
- name: Backend contract tests
run: cargo test -p larql-compute --test test_backend_matmul_quant
coverage:
name: coverage · ubuntu
runs-on: ubuntu-latest
timeout-minutes: 25
steps:
- uses: actions/checkout@v6
- name: Install stable Rust
uses: dtolnay/rust-toolchain@stable
- name: Install OpenBLAS
run: |
sudo apt-get update
sudo apt-get install -y libopenblas-dev pkg-config
- name: Install cargo-llvm-cov
uses: taiki-e/install-action@cargo-llvm-cov
- name: Coverage policy gate
# `make larql-compute-coverage-summary` runs `cargo llvm-cov`
# with `--fail-under-lines` AND invokes
# `scripts/check_coverage_policy.py`, so any regression on
# per-file floors or the total floor fails CI here.
run: make larql-compute-coverage-summary