dcsctp 0.1.11

An SCTP implementation for WebRTC Data Channels
Documentation
---
name: Continuous Integration

on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main

permissions: read-all

env:
  CARGO_TERM_COLOR: always

jobs:
  test:
    name: Test
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
      - uses: actions-rust-lang/setup-rust-toolchain@150fca883cd4034361b621bd4e6a9d34e5143606 # v1.15.4
      - run: cargo test --workspace --verbose

  fuzz:
    name: Fuzz
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
      - uses: actions-rust-lang/setup-rust-toolchain@150fca883cd4034361b621bd4e6a9d34e5143606 # v1.15.4
        with:
          toolchain: nightly
      - run: |
          cargo install cargo-fuzz
          cargo fuzz run parse_parameters -- -max_total_time=5
          cargo fuzz run parse_error_causes -- -max_total_time=5
          cargo fuzz run parse_packet -- -max_total_time=5

  check-rustfmt:
    name: Check (rustfmt)
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
      - uses: actions-rust-lang/setup-rust-toolchain@150fca883cd4034361b621bd4e6a9d34e5143606 # v1.15.4
        with:
          toolchain: nightly
          components: rustfmt
      - run: cargo fmt --all -- --check

  check-clang-format:
    name: Check (clang-format)
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
      - run: |
          git ls-files -z '*.cc' '*.h' | xargs -0 clang-format --dry-run --Werror

  check-clippy:
    name: Check (clippy)
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
      - uses: actions-rust-lang/setup-rust-toolchain@150fca883cd4034361b621bd4e6a9d34e5143606 # v1.15.4
        with:
          components: clippy
      - run: >
          cargo clippy
          --workspace
          --all-features
          --all-targets
          --
          -D warnings

  check-doctests:
    name: Check (doc tests)
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
      - uses: actions-rust-lang/setup-rust-toolchain@150fca883cd4034361b621bd4e6a9d34e5143606 # v1.15.4
      # NOTE: We need to run `cargo test --doc` separately from normal tests:
      # https://github.com/rust-lang/cargo/issues/6669
      - env:
          RUST_BACKTRACE: 1
        run: cargo test --workspace --doc
      - env:
          RUSTDOCFLAGS: "--deny warnings"
        run: >
          cargo doc
          --workspace
          --no-deps
          --all-features
          --document-private-items

  check-cxx:
    name: Check (cxx)
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
      - uses: actions-rust-lang/setup-rust-toolchain@150fca883cd4034361b621bd4e6a9d34e5143606 # v1.15.4
      - run: |
          cd examples/pingpong/
          make clean all
          ./main