httpmock 0.8.3

HTTP mocking library for Rust
Documentation
on: workflow_dispatch

name: Full Build

concurrency:
  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
  cancel-in-progress: true

jobs:
  build:
    runs-on: ${{ matrix.os }}
    name: build-${{ matrix.os }}-${{ matrix.rust }}
    strategy:
      matrix:
        os: [ubuntu-latest, macos-latest, windows-latest]
        rust:
          - stable
          - beta
          - nightly
    steps:
      - uses: actions/checkout@v6
        with:
          ref: ${{ github.event.inputs.branch }}
      - uses: actions-rust-lang/setup-rust-toolchain@v1
        with:
          toolchain: ${{ matrix.rust }}

      - run: cargo build

      - run: cargo test

      - run: cargo fmt --all -- --check

      - run: cargo clippy -- -D warnings

  build-remote:
    runs-on: ${{ matrix.os }}
    name: build-remote-${{ matrix.os }}-${{ matrix.rust }}
    strategy:
      matrix:
        os: [ubuntu-latest, macos-latest, windows-latest]
        rust:
          - stable
          - beta
          - nightly
    steps:
      - uses: actions/checkout@v6
        with:
          ref: ${{ github.event.inputs.branch }}

      - uses: actions-rust-lang/setup-rust-toolchain@v1
        with:
          toolchain: ${{ matrix.rust }}

      - run: cargo build --features remote

      - run: cargo test --features remote

  build-standalone:
    runs-on: ${{ matrix.os }}
    name: build-standalone-${{ matrix.os }}-${{ matrix.rust }}
    strategy:
      matrix:
        os: [ubuntu-latest, macos-latest, windows-latest]
        rust:
          - stable
          - beta
          - nightly
    steps:
      - uses: actions/checkout@v6
        with:
          ref: ${{ github.event.inputs.branch }}

      - uses: actions-rust-lang/setup-rust-toolchain@v1
        with:
          toolchain: ${{ matrix.rust }}

      - run: cargo build --features standalone

      - run: cargo test --features standalone

      - run: cargo install --features standalone --path .

  docker:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - name: Login to DockerHub
        uses: docker/login-action@v3
        with:
          username: ${{ secrets.DOCKERHUB_USERNAME }}
          password: ${{ secrets.DOCKERHUB_TOKEN }}
      - name: Build development version
        if: github.ref != 'refs/heads/master'
        uses: docker/build-push-action@v6
        with:
          context: .
          push: false
          tags: httpmock/httpmock:build