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