libp2p-scatter 0.3.0

broadcast messages to connected peers
Documentation
name: Rust

on:
  push:
    branches: main
  pull_request:

# Cancel previous runs of this workflow when a new commit is added to the PR, branch or tag
concurrency:
  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
  cancel-in-progress: true

env:
  CARGO_INCREMENTAL: 0
  CARGO_TERM_COLOR: always
  CARGO_PROFILE_DEV_DEBUG: 1
  CARGO_PROFILE_RELEASE_DEBUG: 1
  RUST_BACKTRACE: short
  CARGO_NET_RETRY: 10
  RUSTUP_MAX_RETRIES: 10

jobs:
  test:
    name: Tests
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Setup Rust toolchain
        uses: actions-rust-lang/setup-rust-toolchain@v1
      - name: Install cargo-nextest
        uses: taiki-e/install-action@cargo-nextest
      - name: Run tests
        run: cargo nextest run --no-fail-fast --no-capture

  clippy:
    name: Clippy
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Setup Rust toolchain
        uses: actions-rust-lang/setup-rust-toolchain@v1
        with:
          components: clippy
      - name: Run clippy
        uses: actions-rs/clippy@master
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          args: --all-features --all-targets

  fmt:
    name: Formatting
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Setup Rust toolchain
        uses: actions-rust-lang/setup-rust-toolchain@v1
        with:
          components: rustfmt
      - name: Check formatting
        uses: actions-rust-lang/rustfmt@v1

  nightly:
    name: Clippy (nightly)
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Setup Rust toolchain
        uses: actions-rust-lang/setup-rust-toolchain@v1
        with:
          toolchain: nightly
          components: clippy
      - name: Run clippy
        uses: actions-rs/clippy@master
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          args: --all-features --all-targets

  publish-dry-run:
    name: Publish (dry-run)
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Setup Rust toolchain
        uses: actions-rust-lang/setup-rust-toolchain@v1
      - name: Publish (dry-run)
        run: cargo publish --dry-run