kuva 0.4.0

Scientific plotting library in Rust with various backends.
Documentation
name: CI

on:
  push:
    branches: [main, dev]
  pull_request:
    branches: [main, dev]

env:
  CARGO_TERM_COLOR: always

jobs:
  test:
    name: Test
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Free disk space
        uses: jlumbroso/free-disk-space@main
        with:
          tool-cache: false
          android: true
          dotnet: true
          haskell: true
          large-packages: false
          docker-images: true
          swap-storage: false

      - uses: Swatinem/rust-cache@v2

      - name: Build library (no features)
        run: cargo build

      - name: Test (CLI + all backends)
        run: |
          mkdir -p test_outputs smoke_test_outputs
          cargo ci-test


  clippy:
    name: Clippy
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - uses: Swatinem/rust-cache@v2

      - name: Clippy (CLI + all backends)
        run: cargo ci-clippy

  fmt:
    name: Format
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Check formatting
        run: cargo ci-fmt

  msrv:
    name: MSRV build
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Read MSRV from Cargo.toml
        id: msrv
        run: echo "version=$(sed -n 's/^rust-version = "\(.*\)"/\1/p' Cargo.toml)" >> "$GITHUB_OUTPUT"

      - name: Install MSRV toolchain
        uses: dtolnay/rust-toolchain@master
        with:
          toolchain: ${{ steps.msrv.outputs.version }}

      - uses: Swatinem/rust-cache@v2

      - name: Build library (no features) at MSRV
        run: cargo +${{ steps.msrv.outputs.version }} build

      - name: Build library (CLI + all backends) at MSRV
        run: cargo +${{ steps.msrv.outputs.version }} build --features cli,full