statumen 0.1.1

Statumen whole-slide image reader
Documentation
name: CI

on:
  push:
    branches: [main]
  pull_request:

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

env:
  CARGO_TERM_COLOR: always
  RUSTFLAGS: "-D warnings"
  RUSTDOCFLAGS: "-D warnings"

jobs:
  test:
    strategy:
      fail-fast: false
      matrix:
        include:
          - { os: ubuntu-latest, rust: stable }
          - { os: macos-latest, rust: stable }
          - { os: ubuntu-latest, rust: "1.94" }
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v4
        with:
          path: statumen
      - uses: dtolnay/rust-toolchain@master
        with:
          toolchain: ${{ matrix.rust }}
          components: rustfmt,clippy
      - run: cargo xtask fmt
        working-directory: statumen
      - run: cargo xtask clippy
        working-directory: statumen
      - run: cargo xtask test
        working-directory: statumen

  docs:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          path: statumen
      - uses: dtolnay/rust-toolchain@stable
      - run: cargo xtask doc
        working-directory: statumen

  typos:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: crate-ci/typos@v1

  release:
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-latest, macos-latest, windows-latest]
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v4
        with:
          path: statumen
      - uses: dtolnay/rust-toolchain@stable
      - run: cargo xtask release-test
        working-directory: statumen

  package:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          path: statumen
      - uses: dtolnay/rust-toolchain@stable
      - run: cargo xtask package
        working-directory: statumen

  coverage:
    runs-on: ubuntu-latest
    continue-on-error: true
    steps:
      - uses: actions/checkout@v4
        with:
          path: statumen
      - uses: dtolnay/rust-toolchain@stable
      - uses: taiki-e/install-action@cargo-llvm-cov
      - run: cargo xtask coverage
        working-directory: statumen
      - uses: actions/upload-artifact@v4
        if: always()
        with:
          name: statumen-lcov
          path: statumen/lcov.info
          if-no-files-found: ignore