quorum-set 0.1.0

Hierarchical quorum trees with deterministic canonical IDs
Documentation
name: ci

on:
  push:
  pull_request:
  schedule: [cron: "40 1 * * 0"]

jobs:
  build:
    name: Build
    runs-on: ubuntu-latest

    steps:
      - name: Setup | Checkout
        uses: actions/checkout@v4

      - name: Build | Release Mode
        run: cargo build --release

  unittest:
    name: Test
    runs-on: ubuntu-latest

    steps:
      - name: Setup | Checkout
        uses: actions/checkout@v4

      - name: Test
        run: cargo test
        env:
          RUST_LOG: debug
          RUST_BACKTRACE: full

  stable:
    name: Test on stable
    runs-on: ubuntu-latest

    steps:
      - name: Setup | Checkout
        uses: actions/checkout@v4

      - name: Setup | Toolchain
        run: rustup toolchain install stable --profile minimal

      - name: Test
        run: cargo +stable test
        env:
          RUST_LOG: debug
          RUST_BACKTRACE: full

  msrv:
    name: Test MSRV
    runs-on: ubuntu-latest

    steps:
      - name: Setup | Checkout
        uses: actions/checkout@v4

      - name: Setup | Toolchain
        run: rustup toolchain install 1.88.0 --profile minimal

      - name: Test
        run: cargo +1.88.0 test
        env:
          RUST_LOG: debug
          RUST_BACKTRACE: full

  lint:
    name: lint
    runs-on: ubuntu-latest

    steps:
      - name: Setup | Checkout
        uses: actions/checkout@v4

      - name: Setup | Components
        run: rustup component add rustfmt clippy

      - name: Format
        run: cargo fmt --all -- --check

      - name: clippy
        run: cargo clippy --no-deps --all-targets -- -D warnings

      - name: Build-doc
        run: cargo doc --all --no-deps
        env:
          RUSTDOCFLAGS: "-D warnings"

      - name: Package
        run: cargo package --allow-dirty