openslide-sys 1.0.8

Low-level bindings to the openslide library
Documentation
name: Build and test

on:
  push:
    branches:
      - main
      - develop
  pull_request:

env:
  CARGO_TERM_COLOR: always
  RUST_VERSION: 1.82.0

jobs:
  build:
    runs-on: ${{ matrix.os }}

    strategy:
        fail-fast: false
        matrix:
          os: [ "ubuntu-22.04", "macos-14" ]
          openslide_version: [ "openslide3", "openslide4" ]

    env:
      INSTALL_DEPS_CMD: install-deps-${{ contains(matrix.os, 'ubuntu') && 'ubuntu' || 'macos' }}-${{ matrix.openslide_version }}
      TEST_DEBUG_CMD: test-debug-${{ contains(matrix.os, 'ubuntu') && 'ubuntu' || 'macos' }}
      TEST_RELEASE_CMD: test-release-${{ contains(matrix.os, 'ubuntu') && 'ubuntu' || 'macos' }}

    steps:
    - uses: actions/checkout@v4
    - uses: dtolnay/rust-toolchain@stable
      with:
        toolchain: ${{ env.RUST_VERSION }}
        components: clippy, rustfmt
    - uses: Swatinem/rust-cache@v2
      with:
        key: ${{ matrix.os }}
    - name: Install dependencies
      run: make ${{ env.INSTALL_DEPS_CMD }}
    - name: Build & Test (Debug)
      run: make ${{ env.TEST_DEBUG_CMD }}
    - name: Build & Test (Release)
      run: make ${{ env.TEST_RELEASE_CMD }}

  doc-rs:
    runs-on: ubuntu-24.04
    steps:
    - uses: actions/checkout@v4
    - uses: dtolnay/rust-toolchain@stable
      with:
        toolchain: ${{ env.RUST_VERSION }}
        components: clippy, rustfmt
    - name: Install dependencies ubuntu
      run: make install-deps-ubuntu-openslide3
    - name: Generate Doc
      env:
        DOCS_RS: 1
      run: cargo doc -v

  pre-commit:
    runs-on: ubuntu-24.04
    steps:
    - uses: actions/checkout@v4
    - uses: dtolnay/rust-toolchain@stable
      with:
        toolchain: ${{ env.RUST_VERSION }}
        components: clippy, rustfmt
    - uses: actions/setup-python@v5
      with:
        python-version: '3.13'
    - name: Install pre-commit
      run: pip install pre-commit
    - name: Pre-commit
      run: |
        pre-commit install --install-hooks
        pre-commit run --all --show-diff-on-failure