Skip to content

Testing

Testing #112

Workflow file for this run

name: Build
on:
push:
branches: ["main"]
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.ref_name }}
cancel-in-progress: true
env:
CARGO_TERM_COLOR: always
jobs:
build:
name:
Build ${{ matrix.target.description }} ${{ matrix.rust.description }} ${{
matrix.features.description }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
target:
- { target: x86_64-unknown-linux-gnu, description: Native }
- { target: wasm32-unknown-unknown, description: Web }
- { target: wasm32v1-none, description: Wasm v1 }
rust:
- { version: "1.60", description: MSRV, atomics: false }
- { version: stable, atomics: false }
- { version: nightly, atomics: false }
- {
version: nightly,
description: with Atomics,
atomics: true,
component: --component rust-src,
flags: "-Ctarget-feature=+atomics,+bulk-memory",
build-std: true,
}
features:
- { features: "", description: (`default`) }
- { features: --features serde, description: "(`default`, `serde`)" }
- { features: --no-default-features --features std, description: (`std`) }
- { features: --no-default-features, no_std: true, description: (`no_std`) }
- {
features: --no-default-features --features msrv,
no_std: true,
description: "(`no_std`, `msrv`)",
}
- {
features: --no-default-features --features serde,
no_std: true,
description: "(`no_std`, `serde`)",
}
- {
features: "--no-default-features --features msrv,serde",
no_std: true,
description: "(`no_std`, `msrv`, `serde`)",
}
exclude:
- target: { target: x86_64-unknown-linux-gnu, description: Native }
rust: { version: nightly }
- target: { target: wasm32-unknown-unknown, description: Web }
rust: { version: nightly, atomics: false }
- target: { target: wasm32v1-none, description: Wasm v1 }
rust: { version: "1.60" }
- target: { target: wasm32v1-none, description: Wasm v1 }
rust: { version: stable }
- target: { target: wasm32v1-none, description: Wasm v1 }
features: { no_std: false }
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Rust
run: |
rustup toolchain install ${{ matrix.rust.version }} --profile minimal ${{ matrix.rust.component }} --target ${{ matrix.target.target }}
rustup default ${{ matrix.rust.version }}
- name: Set `build-std` components
if: matrix.rust.build-std == true && matrix.features.no_std == false
run: echo "BUILD_STD_COMPONENTS=-Zbuild-std=panic_abort,std" >> $GITHUB_ENV
- name: Set `build-std` `no_std` components
if: matrix.rust.build-std == true && matrix.features.no_std == true
run: echo "BUILD_STD_COMPONENTS=-Zbuild-std=core,alloc" >> $GITHUB_ENV
- name: Fix MSRV dependencies
if: matrix.rust.version == '1.60'
run: |
cargo update -p bumpalo --precise 3.14.0
cargo update -p serde --precise 1.0.210
cargo update -p syn --precise 2.0.67
- name: Build
env:
RUSTFLAGS: ${{ matrix.rust.flags }}
run:
cargo build ${{ matrix.features.features }} --target ${{ matrix.target.target }}
$BUILD_STD_COMPONENTS
minimal-versions:
name:
Minimal Versions ${{ matrix.target.description }} ${{ matrix.rust.description }} ${{
matrix.features.description }}
runs-on: ubuntu-latest
defaults:
run:
working-directory: tests-crates/minimal-versions
strategy:
fail-fast: false
matrix:
target:
- { target: x86_64-unknown-linux-gnu, description: Native }
- { target: wasm32-unknown-unknown, description: Web }
- { target: wasm32v1-none, description: Wasm v1 }
rust:
- { version: "1.60", description: MSRV }
- { version: stable }
- { version: nightly }
features:
- { features: "", description: (`default`) }
- { features: --features serde, description: "(`default`, `serde`)" }
- { features: --no-default-features --features std, description: (`std`) }
- { features: --no-default-features, no_std: true, description: (`no_std`) }
- {
features: --no-default-features --features msrv,
no_std: true,
description: "(`no_std`, `msrv`)",
}
- {
features: --no-default-features --features serde,
no_std: true,
description: "(`no_std`, `serde`)",
}
- {
features: "--no-default-features --features msrv,serde",
no_std: true,
description: "(`no_std`, `msrv`, `serde`)",
}
exclude:
- target: { target: x86_64-unknown-linux-gnu, description: Native }
rust: { version: nightly }
- target: { target: wasm32-unknown-unknown, description: Web }
rust: { version: nightly }
- target: { target: wasm32v1-none, description: Wasm v1 }
rust: { version: "1.60" }
- target: { target: wasm32v1-none, description: Wasm v1 }
rust: { version: stable }
- target: { target: wasm32v1-none, description: Wasm v1 }
features: { no_std: false }
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Rust
run: |
rustup toolchain install ${{ matrix.rust.version }} --profile minimal --target ${{ matrix.target.target }}
rustup default ${{ matrix.rust.version }}
- name: Downgrade to minimal versions
run: |
rustup toolchain install nightly --profile minimal
cargo +nightly update -Z minimal-versions
- name: Fix Rust nightly incompatible dependencies
if: matrix.rust.version == 'nightly'
run: |
cargo update -p proc-macro2 --precise 1.0.60
- name: Build
run: cargo build ${{ matrix.features.features }} --target ${{ matrix.target.target }}
resolver:
name: |
`resolver = "1"` ${{ matrix.target.description }} ${{ matrix.rust.description }} ${{ matrix.features.description }}
runs-on: ubuntu-latest
defaults:
run:
working-directory: tests-crates/resolver
strategy:
fail-fast: false
matrix:
target:
- { target: x86_64-unknown-linux-gnu, description: Native }
- { target: wasm32-unknown-unknown, description: Web }
- { target: wasm32v1-none, description: Wasm v1 }
rust:
- { version: "1.60", description: MSRV }
- { version: stable }
- { version: nightly }
features:
- { features: "", description: (`default`) }
- { features: --features serde, description: "(`default`, `serde`)" }
- { features: --no-default-features --features std, description: (`std`) }
- { features: --no-default-features, no_std: true, description: (`no_std`) }
- {
features: --no-default-features --features msrv,
no_std: true,
description: "(`no_std`, `msrv`)",
}
- {
features: --no-default-features --features serde,
no_std: true,
description: "(`no_std`, `serde`)",
}
- {
features: "--no-default-features --features msrv,serde",
no_std: true,
description: "(`no_std`, `msrv`, `serde`)",
}
exclude:
- target: { target: x86_64-unknown-linux-gnu, description: Native }
rust: { version: nightly }
- target: { target: wasm32-unknown-unknown, description: Web }
rust: { version: nightly }
- target: { target: wasm32v1-none, description: Wasm v1 }
rust: { version: "1.60" }
- target: { target: wasm32v1-none, description: Wasm v1 }
rust: { version: stable }
- target: { target: wasm32v1-none, description: Wasm v1 }
features: { no_std: false }
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Rust
run: |
rustup toolchain install ${{ matrix.rust.version }} --profile minimal --target ${{ matrix.target.target }}
rustup default ${{ matrix.rust.version }}
- name: Fix MSRV dependencies
if: matrix.rust.version == '1.60'
run: |
cargo update -p bumpalo --precise 3.14.0
cargo update -p serde --precise 1.0.210
cargo update -p syn --precise 2.0.67
- name: Build
run: cargo build ${{ matrix.features.features }} --target ${{ matrix.target.target }}
docsrs-error:
name: |
`cfg(docsrs)` error message ${{ matrix.target.description }} ${{ matrix.rust.description }} ${{ matrix.features.description }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
target:
- { target: x86_64-unknown-linux-gnu, description: Native }
- { target: wasm32-unknown-unknown, description: Web }
- { target: wasm32v1-none, description: Wasm v1 }
rust:
- { version: "1.60", description: MSRV }
- { version: stable }
- { version: nightly }
# We don't check `serde` because it fails on the dependency itself already.
features:
- { features: "", no_std: false }
- { features: --no-default-features, no_std: true, description: (`no_std`) }
exclude:
- target: { target: x86_64-unknown-linux-gnu, description: Native }
rust: { version: nightly }
- target: { target: wasm32-unknown-unknown, description: Web }
rust: { version: nightly }
- target: { target: wasm32v1-none, description: Wasm v1 }
rust: { version: "1.60" }
- target: { target: wasm32v1-none, description: Wasm v1 }
rust: { version: stable }
- target: { target: wasm32v1-none, description: Wasm v1 }
features: { no_std: false }
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Rust
run: |
rustup toolchain install ${{ matrix.rust.version }} --profile minimal --target ${{ matrix.target.target }}
rustup default ${{ matrix.rust.version }}
- name: Fix MSRV dependencies
if: matrix.rust.version == '1.60'
run: |
cargo update -p bumpalo --precise 3.14.0
cargo update -p serde --precise 1.0.210
cargo update -p syn --precise 2.0.67
- name: Build
env:
RUSTFLAGS: --cfg docsrs
run:
diff <(cargo build --target ${{ matrix.target.target }} ${{ matrix.features.features }}
--message-format json | jq -r "select(.reason == \"compiler-message\") |
.message.message") .github/docsrs-error-${{ matrix.rust.version }}.txt