knossos 1.2.0

Rust library for generating and rendering mazes
Documentation
name: Build

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

env:
  CARGO_TERM_COLOR: always

jobs:
  typos:
    name: spell-check
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Check spelling
        uses: crate-ci/typos@master

  fmt:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v4
      - name: Format
        run: cargo fmt -- --check

  clippy:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v4
      - name: Configure Cargo cache
        uses: actions/cache@v3
        with:
          path: |
            ./target
            ~/.cargo
          key: debug-${{ runner.os }}-${{ hashFiles('rust-toolchain.toml') }}-${{ hashFiles('Cargo.lock') }}
          restore-keys: |
            debug-${{ runner.os }}-${{ hashFiles('rust-toolchain.toml') }}-
            debug-${{ runner.os }}-
      - name: Install clippy
        run: rustup component add clippy
      - name: Run clippy
        run: cargo clippy

  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Build
        run: cargo build --verbose

  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Run tests
        run: cargo test --verbose

  coverage:
    runs-on: ubuntu-latest
    container:
      image: xd009642/tarpaulin:develop-nightly
      options: --security-opt seccomp=unconfined
    steps:
      - uses: actions/checkout@v4
      - name: Generate code coverage
        run: |
          cargo +nightly tarpaulin --verbose --all-features --workspace --timeout 120 --out Lcov --output-dir ./coverage
      - name: Upload to coveralls.io
        uses: coverallsapp/github-action@v2