pacmap 0.2.6

Pairwise Controlled Manifold Approximation (PaCMAP) for dimensionality reduction
Documentation
name: CI

on:
  push:
    branches:
      - main
  pull_request:

env:
  RUSTFLAGS: "-C target-cpu=native"
  CARGO_TERM_COLOR: always

jobs:
  title:
    runs-on: ubuntu-latest

    steps:
      - name: Run Commit Lint
        uses: opensource-nepal/commitlint@v1

  check:
    runs-on: ubuntu-latest

    steps:
      - name: Install BLAS
        uses: Eeems-Org/apt-cache-action@v1
        with:
          packages: libopenblas-dev

      - name: Checkout code
        uses: actions/checkout@v4

      - uses: Swatinem/rust-cache@v2

      - name: Set up Rust toolchain
        uses: actions-rs/toolchain@v1
        with:
          toolchain: stable

      - name: Run rustfmt
        uses: actions-rs/cargo@v1
        with:
          command: fmt
          args: --all -- --check

      - name: Run Clippy
        uses: actions-rs/cargo@v1
        with:
          command: clippy
          args: --features openblas-system -- -D warnings

  test:
    runs-on: ubuntu-latest

    steps:
      - name: Install BLAS
        uses: Eeems-Org/apt-cache-action@v1
        with:
          packages: libopenblas-dev

      - name: Checkout code
        uses: actions/checkout@v4

      - uses: Swatinem/rust-cache@v2

      - name: Set up Rust toolchain
        uses: actions-rs/toolchain@v1
        with:
          toolchain: stable

      - name: Run tests
        uses: actions-rs/cargo@v1
        with:
          command: test
          args: --features openblas-system

  dependencies:
    runs-on: ubuntu-latest

    steps:
      - name: Install BLAS
        uses: Eeems-Org/apt-cache-action@v1
        with:
          packages: libopenblas-dev

      - name: Checkout code
        uses: actions/checkout@v4

      - uses: Swatinem/rust-cache@v2

      - name: Set up nightly Rust toolchain
        uses: actions-rs/toolchain@v1
        with:
          toolchain: nightly

      - name: Install cargo-udeps
        uses: baptiste0928/cargo-install@v3
        with:
          crate: cargo-udeps

      - name: Run cargo udeps
        run: cargo +nightly udeps --features openblas-system