docs(readme): add GPU compatibility matrix; fix sm_121 arch routing #153
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [main, master] | |
| pull_request: | |
| branches: [main, master] | |
| env: | |
| CARGO_TERM_COLOR: always | |
| RUST_BACKTRACE: 1 | |
| # Note: CUDA tests require NVIDIA GPU + nvcc and are skipped in CI. | |
| # CUDA features are opt-in (not default) so workspace builds succeed without nvcc. | |
| # Run CUDA tests locally with: cargo test -p ringkernel-cuda --features cuda | |
| jobs: | |
| # Format check | |
| fmt: | |
| name: Format | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: rustfmt | |
| - name: Check formatting | |
| run: cargo fmt --all -- --check | |
| # Clippy lints (production code only — tests may use unwrap()) | |
| clippy: | |
| name: Clippy | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: clippy | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Run clippy on library and binaries | |
| run: cargo clippy --workspace --lib --bins -- -D warnings | |
| - name: Run clippy on tests (warnings allowed) | |
| run: cargo clippy --workspace --tests --benches --examples -- -A clippy::unwrap_used -A clippy::expect_used | |
| # Unit tests | |
| test: | |
| name: Test | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Run tests | |
| run: cargo test --workspace --lib --bins | |
| # Integration tests (excludes CUDA tests that require nvcc) | |
| integration: | |
| name: Integration Tests | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Run integration tests | |
| run: cargo test --workspace --test '*' --features cpu | |
| # Doc tests | |
| doc: | |
| name: Documentation | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Check documentation | |
| run: cargo doc --workspace --no-deps | |
| - name: Run doc tests | |
| run: cargo test --workspace --doc | |
| # Build check | |
| build: | |
| name: Build | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Build workspace | |
| run: cargo build --workspace | |
| - name: Build with CPU features | |
| run: cargo build --workspace --features cpu | |
| # Dependency security audit | |
| audit: | |
| name: Security Audit | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - name: Install cargo-audit | |
| run: cargo install --locked cargo-audit | |
| - name: Run cargo audit | |
| # Uses .cargo/audit.toml for ignored advisories (documented transitive deps). | |
| # Unmaintained warnings are informational and do not fail the build. | |
| run: cargo audit | |
| # Feature matrix: test key feature combinations that work without GPU hardware | |
| feature-matrix: | |
| name: Feature Matrix | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| features: | |
| - "" # no optional features | |
| - "cpu" # CPU backend only | |
| - "enterprise" # enterprise features | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Check with features '${{ matrix.features }}' | |
| run: cargo check --workspace --features "${{ matrix.features }}" | |
| # Minimum Supported Rust Version check | |
| msrv: | |
| name: MSRV (1.75) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@1.75.0 | |
| - uses: Swatinem/rust-cache@v2 | |
| # Core library + backends honor MSRV 1.75 for downstream users. | |
| # Showcase apps with GUIs (accnet, procint) track latest stable. | |
| - name: Check MSRV (core + backends) | |
| run: cargo check --workspace --exclude ringkernel-accnet --exclude ringkernel-procint |