zeromq-src 0.3.6+4.3.5

Source code and logic to build ZeroMQ from source
Documentation
on: [push, pull_request]

name: Continuous integration
env:
  # Force Visual Studio compile errors to display in english
  VSLANG: 1033

jobs:
  check:
    name: Check and Lint
    strategy:
      matrix:
        os: [ubuntu-latest]
        rust: [stable]
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v4
        with:
          submodules: recursive
      # https://github.com/actions/cache/blob/main/examples.md#rust---cargo
      - uses: actions/cache@v3
        with:
          path: ~/.cargo/bin/
              ~/.cargo/registry/index/
              ~/.cargo/registry/cache/
              ~/.cargo/git/db/
              target/
          key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: ${{ matrix.rust }}
          profile: minimal
          override: true
          components: rustfmt, clippy
      - name: Cargo check
        uses: actions-rs/cargo@v1
        with:
          command: check
          args: --workspace --all-targets
      - name: Cargo fmt
        uses: actions-rs/cargo@v1
        with:
          command: fmt
          args: --all -- --check
      - name: Cargo clippy
        uses: actions-rs/cargo@v1
        with:
          command: clippy
          args: --workspace --all-targets -- -D warnings
  test:
    name: Run unit tests
    strategy:
      matrix:
        os: [ubuntu-latest, windows-latest, macos-latest]
        rust: [stable]
        tests: ["", "--release", "--features=libsodium"]
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v4
        with:
          submodules: recursive
      # https://github.com/actions/cache/blob/main/examples.md#rust---cargo
      - uses: actions/cache@v3
        with:
          path: ~/.cargo/bin/
              ~/.cargo/registry/index/
              ~/.cargo/registry/cache/
              ~/.cargo/git/db/
              target/
          key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
      - name: Cargo test
        uses: actions-rs/cargo@v1
        with:
          command: test
          args: --manifest-path testcrate/Cargo.toml ${{ matrix.tests }}