foca 1.0.0

Gossip-based cluster membership discovery, based on SWIM
Documentation
on: [push, pull_request]

name: Continuous Integration

jobs:
  check:
    name: Testsuite with default (zero) features
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: dtolnay/rust-toolchain@stable
      - run: cargo test

  test:
    name: Testsuite with all features
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: dtolnay/rust-toolchain@stable
      - run: cargo test --all-features

  fmt:
    name: Rustfmt
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: dtolnay/rust-toolchain@stable
        with:
          components: rustfmt
      - run: cargo fmt --all -- --check

  cortex_m_build:
    name: No-std compat (x-build)
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: dtolnay/rust-toolchain@stable
        with:
          targets: thumbv7m-none-eabi
      - name: Check default (zero) features
        run: cargo check --target thumbv7m-none-eabi
      - name: Check tracing feature
        run: cargo check --target thumbv7m-none-eabi --features tracing
      - name: Check postcard-codec feature
        run: cargo check --target thumbv7m-none-eabi --features postcard-codec
      - name: Check every no-std feature
        run: cargo check --target thumbv7m-none-eabi --features tracing,postcard-codec

  clippy:
    name: Clippy
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: dtolnay/rust-toolchain@stable
        with:
          components: clippy
      - run: cargo clippy --all-features -- -D warnings

  features:
    name: Features Powerset Tests
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: dtolnay/rust-toolchain@stable
      - name: Install cargo-hack
        run: cargo install cargo-hack
      - name: Run checks
        run: cargo hack test --feature-powerset