rwh 0.11.3

Safe filetransfer through magic-wormhole
name: Rust

on:
  push:
    branches: [main]

jobs:
  formatting:
    name: Cargo Format
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions-rust-lang/setup-rust-toolchain@v1
        with:
          components: rustfmt
      - name: Rustfmt Check
        uses: actions-rust-lang/rustfmt@v1

  clippy:
    name: Clippy
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Cache ~/.cargo
        uses: actions/cache@v4
        with:
          path: ~/.cargo
          key: ${{ runner.os }}-clippy-dotcargo
      - name: Cache cargo build
        uses: actions/cache@v4
        with:
          path: target
          key: ${{ runner.os }}-clippy-cargo-build-target
      - uses: dtolnay/rust-toolchain@stable
      - name: Install musl
        run: rustup target add x86_64-unknown-linux-musl
      - name: Clippy
        run: cargo clippy --release --all-targets --features all

  test:
    name: Tests
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
      - name: Install musl target
        run: rustup target add x86_64-unknown-linux-musl
      - name: Run tests
        run: cargo test --all-targets --features all

  cargo-deny:
    name: Cargo deny
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: EmbarkStudios/cargo-deny-action@v2

  audit:
    name: Audit Rust Dependencies
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Cache ~/.cargo
        uses: actions/cache@v4
        with:
          path: ~/.cargo
          key: ${{ runner.os }}-audit-dotcargo
      - uses: actions-rust-lang/audit@v1
        name: Audit Rust Dependencies