nifti 0.17.0

Rust implementation of the NIfTI file format
Documentation
name: Continuous integration

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  # all Cargo feature combinations
  ci-all:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        rust:
         - stable
        features:
          - "--no-default-features"
          - "--features ndarray_volumes,nalgebra_affine"
    steps:
      - uses: actions/checkout@v4
      - uses: actions-rust-lang/setup-rust-toolchain@v1
        with:
          cache: true
          toolchain: ${{ matrix.rust }}
          override: true
      - run: cargo test ${{ matrix.features }}

  # one Cargo feature combination (all)
  ci-minimal:
    runs-on:
     - ubuntu-latest
    strategy:
      matrix:
        rust:
          - beta
        features:
          - "--features ndarray_volumes,nalgebra_affine"
    steps:
      - uses: actions/checkout@v4
      - uses: actions-rust-lang/setup-rust-toolchain@v1
        with:
          cache: true
          toolchain: ${{ matrix.rust }}
          override: true
      - run: cargo test ${{ matrix.features }}

  clippy:
    name: Clippy
    runs-on: ubuntu-latest
    strategy:
      matrix:
        features:
          - "--features ndarray_volumes,nalgebra_affine"
    steps:
      - uses: actions/checkout@v4
      - uses: actions-rust-lang/setup-rust-toolchain@v1
        with:
          cache: true
          components: clippy
          toolchain: stable
          override: true
      - run: cargo clippy ${{ matrix.features }}