126 lines
3.4 KiB
YAML
126 lines
3.4 KiB
YAML
name: hybrid-array
|
|
|
|
on:
|
|
pull_request:
|
|
paths-ignore:
|
|
- README.md
|
|
push:
|
|
branches: master
|
|
paths-ignore:
|
|
- README.md
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
env:
|
|
CARGO_INCREMENTAL: 0
|
|
RUSTFLAGS: "-D warnings"
|
|
RUSTDOCFLAGS: "-D warnings"
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
rust:
|
|
- 1.85.0 # MSRV
|
|
- stable
|
|
target:
|
|
- armv7a-none-eabi
|
|
- thumbv7em-none-eabi
|
|
- wasm32-unknown-unknown
|
|
steps:
|
|
- uses: actions/checkout@v7
|
|
- uses: RustCrypto/actions/cargo-cache@master
|
|
- uses: dtolnay/rust-toolchain@master
|
|
with:
|
|
toolchain: ${{ matrix.rust }}
|
|
targets: ${{ matrix.target }}
|
|
- uses: RustCrypto/actions/cargo-hack-install@master
|
|
- run: cargo hack build --target ${{ matrix.target }} --feature-powerset --exclude-all-features --optional-deps bytemuck,ctutils,serde,subtle,zeroize
|
|
|
|
careful:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v7
|
|
- uses: dtolnay/rust-toolchain@nightly
|
|
- run: cargo install cargo-careful
|
|
- run: cargo careful test --all-features
|
|
|
|
clippy:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v7
|
|
- uses: dtolnay/rust-toolchain@master
|
|
with:
|
|
toolchain: 1.94.0
|
|
components: clippy
|
|
- run: cargo clippy --all-targets --all-features -- -D warnings
|
|
|
|
# Generate code coverage and report to codecov.io
|
|
coverage:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v7
|
|
- uses: dtolnay/rust-toolchain@stable
|
|
with:
|
|
components: llvm-tools
|
|
- uses: taiki-e/install-action@cargo-llvm-cov
|
|
- run: cargo llvm-cov --all-features --lcov --output-path lcov.info
|
|
env:
|
|
CARGO_HUSKY_DONT_INSTALL_HOOKS: true
|
|
- uses: codecov/codecov-action@v7
|
|
with:
|
|
fail_ci_if_error: true
|
|
|
|
doc:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v7
|
|
- uses: dtolnay/rust-toolchain@master
|
|
with:
|
|
toolchain: stable
|
|
- run: cargo doc --all-features
|
|
|
|
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@v7
|
|
- uses: dtolnay/rust-toolchain@nightly
|
|
- run: rustup component add miri && cargo miri setup
|
|
- run: cargo miri test --target ${{ matrix.target }} --all-features
|
|
|
|
rustfmt:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v7
|
|
- uses: dtolnay/rust-toolchain@master
|
|
with:
|
|
toolchain: stable
|
|
components: rustfmt
|
|
- run: cargo fmt --all -- --check
|
|
|
|
test:
|
|
strategy:
|
|
matrix:
|
|
toolchain:
|
|
- 1.85.0 # MSRV
|
|
- stable
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v7
|
|
- uses: RustCrypto/actions/cargo-cache@master
|
|
- uses: dtolnay/rust-toolchain@master
|
|
with:
|
|
toolchain: ${{ matrix.toolchain }}
|
|
- uses: RustCrypto/actions/cargo-hack-install@master
|
|
- run: cargo hack test --feature-powerset --optional-deps arbitrary,bytemuck,serde,subtle,zeroize --group-features arbitrary,bytemuck,ctutils,serde,subtle,zeroize
|
|
- run: cargo test --all-features --release
|