feat: enhance CI configuration with additional jobs for MSRV, Cargo Deny, Semver Check, Miri, Minimal Versions, and Typos

This commit is contained in:
Manuel Raimann
2026-01-30 18:02:36 +01:00
parent d93f384f1e
commit 8a11dd8ca4
3 changed files with 122 additions and 0 deletions
+97
View File
@@ -110,3 +110,100 @@ jobs:
token: ${{ secrets.CODECOV_TOKEN }}
files: lcov.info
fail_ci_if_error: true
msrv:
name: MSRV (1.88)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Install Rust 1.88
run: |
rustup override set 1.88
rustup update 1.88
- uses: Swatinem/rust-cache@v2
- name: Check compilation
run: cargo check --all-features
deny:
name: Cargo Deny
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: EmbarkStudios/cargo-deny-action@v2
semver:
name: Semver Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Install Rust
run: |
rustup override set stable
rustup update stable
- uses: Swatinem/rust-cache@v2
- name: Install cargo-semver-checks
uses: taiki-e/install-action@cargo-semver-checks
- name: Check semver
run: cargo semver-checks check-release
miri:
name: Miri
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Install Rust nightly and Miri
run: |
rustup toolchain install nightly --component miri
rustup override set nightly
- uses: Swatinem/rust-cache@v2
- name: Setup Miri
run: cargo miri setup
- name: Run tests under Miri
run: cargo miri test
env:
MIRIFLAGS: -Zmiri-strict-provenance
minimal-versions:
name: Minimal Versions
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Install Rust nightly
run: |
rustup toolchain install nightly
rustup override set nightly
- uses: Swatinem/rust-cache@v2
- name: Generate minimal version lockfile
run: cargo +nightly -Z minimal-versions update
- name: Install Rust stable
run: |
rustup override set stable
rustup update stable
- name: Check with minimal versions
run: cargo check --all-features --locked
cross-platform:
name: ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [windows-latest, macos-latest]
steps:
- uses: actions/checkout@v6
- name: Install Rust
run: |
rustup override set stable
rustup update stable
- uses: Swatinem/rust-cache@v2
- name: Check compilation
run: cargo check --all-features
- name: Run tests
run: cargo test --all-features
typos:
name: Typos
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: crate-ci/typos@v1