v1.13.1 #288
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build | |
on: | |
merge_group: | |
pull_request: | |
push: | |
env: | |
CARGO_TERM_COLOR: always | |
jobs: | |
build_binary: | |
strategy: | |
fail-fast: false | |
matrix: | |
runs-on: [ macos-latest, ubuntu-latest, windows-latest ] | |
# 1.74.1: MSVR of the CLI binary | |
rust: [ 1.74.1, stable, nightly ] | |
runs-on: ${{ matrix.runs-on }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Rust toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: ${{ matrix.rust }} | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
key: "${{ matrix.runs-on }}-${{ matrix.rust }}" | |
- name: cargo check (debug) | |
run: cargo check --all-targets --features bin --verbose | |
- name: cargo check (release) | |
run: cargo check --all-targets --features bin --verbose --release | |
- name: cargo build (debug) | |
run: cargo build --all-targets --features bin --verbose | |
- name: cargo build (release) | |
run: cargo build --all-targets --features bin --verbose --release | |
# The next step will be cached by the CI cache. | |
- name: Install cargo-nextest | |
run: which cargo-nextest || cargo +stable install cargo-nextest | |
- run: cargo nextest run --verbose | |
# Test that we don't segfault or so because of the LTO. | |
- name: "CLI [release]: ttfb --help" | |
run: cargo run --release --features bin -- --help | |
- name: "CLI [release]: ttfb github.com" | |
run: cargo run --release --features bin -- github.com | |
# The lib is already transitively build above. Here, we only verify the MSRV. | |
# The rust toolchain comes from `rust-toolchain.toml`. | |
build_library_msrv: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Build Lib as Dependency with MSRV | |
run: cd ttfb-lib-msrv-check && cargo check --all-targets --verbose | |
tests: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Rust toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: stable | |
- uses: Swatinem/rust-cache@v2 | |
- name: Build | |
run: cargo test --all-targets --verbose | |
network_tests: | |
runs-on: ubuntu-latest | |
env: | |
RUSTFLAGS: --cfg network_tests | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Rust toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: stable | |
- uses: Swatinem/rust-cache@v2 | |
- name: Run tests | |
run: cargo test --verbose | |
style_checks: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Rust toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: stable | |
components: clippy, rustfmt | |
- uses: Swatinem/rust-cache@v2 | |
- run: cargo fmt -- --check | |
- run: cargo clippy --all-targets | |
- run: cargo doc --document-private-items --no-deps |