hedwig 7.2.3

A simple message bus for Rust
Documentation
name: Test hedwig

# Must match `rust-toolchain.toml` when bumping Rust.
env:
  RUST_STABLE: "1.88.0"

on:
  push:
    paths-ignore:
    - '*.md'
    - 'LICENSE'
    branches:
    - master
  pull_request:
    types: [opened, reopened, synchronize]

jobs:
  lint:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
    timeout-minutes: 10
    steps:
      - uses: actions/checkout@v2
      - name: Install Rust
        uses: actions-rs/toolchain@v1
        with:
            toolchain: ${{ env.RUST_STABLE }}
            profile: minimal
            components: clippy
            default: true
      - name: Clippy
        uses: actions-rs/cargo@v1
        with:
          command: clippy
          args: --all-features -- -Dclippy::correctness -Dclippy::complexity -Dclippy::perf -Dunsafe_code -Dunreachable_pub -Dunused

  doc:
    runs-on: ubuntu-latest
    timeout-minutes: 10
    steps:
      - uses: actions/checkout@v2
      # `#![cfg_attr(docsrs, feature(doc_cfg))]` requires nightly when RUSTDOCFLAGS enables docsrs.
      - uses: actions-rust-lang/setup-rust-toolchain@v1
        with:
          toolchain: nightly-2026-02-27
      - name: Doc
        run: cargo doc --all-features --manifest-path=Cargo.toml --no-deps
        env:
          RUSTDOCFLAGS: --cfg docsrs -Dmissing_docs -Drustdoc::broken_intra_doc_links

  test:
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        # Label must stay `stable` so the check name matches branch protection:
        # test (stable, ubuntu-latest). Toolchain is pinned via RUST_STABLE below.
        rust_toolchain: [stable]
        os: [ubuntu-latest]
    timeout-minutes: 20
    steps:
      - uses: actions/checkout@v2
      - name: Install Rust ${{ env.RUST_STABLE }}
        uses: actions-rs/toolchain@v1
        with:
            toolchain: ${{ env.RUST_STABLE }}
            profile: minimal
            default: true
      - name: Build without features
        uses: actions-rs/cargo@v1
        with:
          command: build
          args: --no-default-features --manifest-path=Cargo.toml
      - name: Test with all features
        uses: actions-rs/cargo@v1
        with:
          command: test
          args: --manifest-path=Cargo.toml --all-features -- --nocapture