name: Rust build and test
on:
push:
branches:
pull_request:
branches:
env:
CARGO_TERM_COLOR: always
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build
run: cargo build --verbose
# No `--features klu`: this doesn't build/run the FFI-backed `Klu`
# backend (needs a C compiler + libclang) or the differential tests in
# `src/klu_native/` that compare its pure-Rust port against real
# vendored KLU (`#[cfg(feature = "klu")]`-gated). klu_native's own
# structural/dense-oracle tests and tests/klu_native_jacobian_test.rs
# still run here, since that backend needs no C toolchain. Adding
# `--features klu` here (a C-compiler + libclang runner dependency)
# is a known follow-up, not done as part of the klu_native port itself.
# No `--features pardiso` either, for the same reason plus one more:
# the `Pardiso` backend (`src/sparse_pardiso.rs`) needs a locally
# installed, separately-licensed Intel oneMKL (`MKLROOT` set) — not
# available on GitHub-hosted runners at all, so this backend is
# local/manual-verification-only (see
# docs/src/solvers/backends.md).
- name: Run tests
run: cargo test --verbose