Skip to content

mcf v0.6.0

mcf v0.6.0 #4495

Workflow file for this run

name: der
on:
pull_request:
paths:
- ".github/workflows/der.yml"
- "const-oid/**"
- "der/**"
- "der_derive/**"
- "Cargo.*"
push:
branches: master
defaults:
run:
working-directory: der
env:
CARGO_INCREMENTAL: 0
RUSTFLAGS: "-Dwarnings"
# Cancels CI jobs when new commits are pushed to a PR branch
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
build-no-std:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
targets: thumbv7em-none-eabi
- uses: RustCrypto/actions/cargo-hack-install@master
- run: cargo hack build --target thumbv7em-none-eabi --feature-powerset --exclude-features arbitrary,std
minimal-versions:
uses: RustCrypto/actions/.github/workflows/minimal-versions.yml@master
with:
working-directory: ${{ github.workflow }}
test:
strategy:
matrix:
include:
# `aarch64` Linux
- target: aarch64-unknown-linux-gnu
rust: 1.85.0
runner: ubuntu-24.04-arm
- target: aarch64-unknown-linux-gnu
rust: stable
runner: ubuntu-24.04-arm
# `aarch64` macOS
- target: aarch64-apple-darwin
rust: 1.85.0
runner: macos-latest
- target: aarch64-apple-darwin
rust: stable
runner: macos-latest
# `x86` Linux (32-bit)
- target: i686-unknown-linux-gnu
rust: 1.85.0 # MSRV
deps: sudo apt update && sudo apt install gcc-multilib
- target: i686-unknown-linux-gnu
rust: stable
deps: sudo apt update && sudo apt install gcc-multilib
# `x86_64` Linux
- target: x86_64-unknown-linux-gnu
rust: 1.85.0 # MSRV
- target: x86_64-unknown-linux-gnu
rust: stable
# `x86_64` Windows
- target: x86_64-pc-windows-msvc
rust: 1.85.0
runner: windows-latest
- target: x86_64-pc-windows-msvc
rust: stable
runner: windows-latest
runs-on: ${{ matrix.runner != '' && matrix.runner || 'ubuntu-latest' }}
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.rust }}
targets: ${{ matrix.target }}
- run: ${{ matrix.deps }}
- uses: taiki-e/install-action@cargo-hack
- run: cargo hack test --target ${{ matrix.target }} --feature-powerset --exclude-features arbitrary,std,heapless
- run: cargo test --target ${{ matrix.target }} --features arbitrary
- run: cargo test --target ${{ matrix.target }} --features std
- run: cargo test --target ${{ matrix.target }} --features arbitrary,ber,bytes,derive,oid,pem,real,std
- run: cargo test --target ${{ matrix.target }} --features arbitrary,ber,bytes,derive,oid,pem,real,std --release
# Test using `cargo careful`
test-careful:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@nightly
- run: cargo install cargo-careful
- run: cargo careful test --all-features
# Test on foreign architectures using `cross test`
test-cross:
strategy:
matrix:
include:
- target: armv7-unknown-linux-gnueabi # ARM32
- target: powerpc-unknown-linux-gnu # PPC32 (big endian)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
targets: ${{ matrix.target }}
- run: cargo install cross
- run: cross test --target ${{ matrix.target }} --no-default-features
- run: cross test --target ${{ matrix.target }}
- run: cross test --target ${{ matrix.target }} --all-features
- run: cross test --target ${{ matrix.target }} --all-features --release
# Test `der_derive`
test-derive:
runs-on: ubuntu-latest
strategy:
matrix:
rust:
- 1.85.0 # MSRV
- stable
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.rust }}
- uses: RustCrypto/actions/cargo-hack-install@master
- run: cargo hack test --feature-powerset
working-directory: der_derive
# Test `heapless` feature (requires MSRV 1.87)
test-heapless:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@master
with:
toolchain: 1.87
- run: cargo test --features heapless
# Test using `cargo miri`
test-miri:
runs-on: ubuntu-latest
env:
MIRIFLAGS: "-Zmiri-symbolic-alignment-check -Zmiri-strict-provenance"
strategy:
matrix:
target:
- x86_64-unknown-linux-gnu
- s390x-unknown-linux-gnu
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: nightly-2026-02-11 # pinned due to rust-lang/miri#4855
- run: rustup component add miri && cargo miri setup
- run: cargo miri test --target ${{ matrix.target }} --no-default-features --lib
# Test WASM using `wasmtime`
test-wasm:
runs-on: ubuntu-latest
env:
CARGO_TARGET_WASM32_WASIP1_RUNNER: "wasmtime"
steps:
- uses: actions/checkout@v6
- uses: bytecodealliance/actions/wasmtime/setup@v1
- uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
targets: wasm32-wasip1
- run: cargo test --target wasm32-wasip1 --no-default-features
- run: cargo test --target wasm32-wasip1
- run: cargo test --target wasm32-wasip1 --all-features
- run: cargo test --target wasm32-wasip1 --all-features --release