name: CI
on: [push, pull_request]
env:
RUST_MIN: 1.89.0
jobs:
test:
name: Test (${{ matrix.os }} - ${{ matrix.toolchain }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
toolchain: [stable, nightly]
steps:
- name: Checkout sources
uses: actions/checkout@v7
- name: Install toolchain (${{ matrix.toolchain }})
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.toolchain }}
- name: Install nextest
uses: taiki-e/install-action@v2
with:
tool: nextest
- name: Add problem matchers
shell: bash
run: echo "::add-matcher::.github/matchers/rust.json"
- name: Install R
uses: r-lib/actions/setup-r@v2
with:
use-public-rspm: true
- name: Install R packages
uses: r-lib/actions/setup-r-dependencies@v2
with:
extra-packages: |
any::nortest
any::moments
any::energy
any::CompQuadForm
any::MVN
any::mnt
- name: Cache Rust
uses: Swatinem/rust-cache@v2
with:
key: ${{ matrix.os }}-${{ matrix.toolchain }}
- name: Build
run: cargo build
- name: Test
run: cargo nextest run --retries 3
env:
TEMP_DIR: ${{ runner.temp }}
- name: Test (all features)
run: cargo nextest run --all-features --retries 3
env:
TEMP_DIR: ${{ runner.temp }}
- name: Doc test
run: cargo test --doc
- name: Doc test (all features)
run: cargo test --doc --all-features
msrv:
name: Check MSRV
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v7
- name: Install toolchain (${{ env.RUST_MIN }})
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ env.RUST_MIN }}
- name: Add problem matchers
run: echo "::add-matcher::.github/matchers/rust.json"
- name: Cache Rust
uses: Swatinem/rust-cache@v2
with:
key: msrv-${{ env.RUST_MIN }}
- name: Check
run: cargo check
- name: Check (all features)
run: cargo check --all-features