name: ci-flow
on:
pull_request:
push:
branches:
- master
- "releases/*"
permissions:
contents: read
env:
SCCACHE_GHA_ENABLED: "true"
RUSTC_WRAPPER: "sccache"
jobs:
build:
runs-on: ${{ matrix.os.runner }}
strategy:
matrix:
rust_toolchain: ["stable"]
os:
- runner: ubuntu-latest
features: "--features csv,ndarray,nalgebra,rulinalg,show_vega"
- runner: macos-latest
features: "--all-features"
steps:
- name: Free Disk Space (Ubuntu)
if: ${{ matrix.os.runner == 'ubuntu-latest' }}
uses: jlumbroso/free-disk-space@main
with:
tool-cache: false
android: true
dotnet: true
haskell: true
large-packages: false
swap-storage: true
- uses: mozilla-actions/sccache-action@v0.0.9
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{ matrix.rust_toolchain }}
- uses: taiki-e/install-action@v2
with:
tool: cargo-nextest
- uses: actions/checkout@v4
- run: cargo fmt --all --check
- run: cargo clippy --all-targets ${{ matrix.os.features }} -- --deny warnings
- run: cargo nextest run ${{ matrix.os.features }}
- run: cargo build --examples ${{ matrix.os.features }}