---
name: Deep Tests
on:
workflow_call: {}
workflow_dispatch: {}
env:
CARGO_TERM_COLOR: always
CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse
NEXTEST_VERSION: '0.9'
jobs:
cargo-publish-dry-run:
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Download Toolchain
run: |
rustup set profile minimal
rustup toolchain install stable
rustup default stable
rustc --version
- name: Try Publishing
run: cargo publish --dry-run
read-msrv:
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Read MSRV
id: read-msrv
run: |
msrv="$(cargo metadata --no-deps --format-version=1 | jq -r '.packages[0].rust_version')"
echo "msrv=$msrv" >> "$GITHUB_OUTPUT"
outputs:
msrv: ${{ steps.read-msrv.outputs.msrv }}
stable-msrv-test:
needs: read-msrv
strategy:
fail-fast: false
matrix:
runner:
- ubuntu-24.04
- macos-15
- windows-2025-vs2026
toolchain:
- stable
- ${{ needs.read-msrv.outputs.msrv }}
runs-on: ${{ matrix.runner }}
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Download Toolchain
run: |
rustup set profile minimal
rustup toolchain install ${{ matrix.toolchain }}
rustup default ${{ matrix.toolchain }}
rustc --version
- name: Check
run: cargo check
- name: Test
run: cargo test
linux-miri-test:
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Download Toolchain
run: |
rustup set profile minimal
rustup toolchain install nightly --component miri --allow-downgrade
rustup default nightly
rustc --version
- name: Download Nextest
run: curl -LsSf "https://get.nexte.st/$NEXTEST_VERSION/linux" | tar zxf - -C ${CARGO_HOME:-~/.cargo}/bin
- name: Test in Miri
run: cargo miri nextest run -j num-cpus