name: CI
on:
push:
branches:
- main
pull_request:
jobs:
no-std:
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
components: clippy
targets: thumbv7m-none-eabi
- name: Check no_std build
run: cargo check --lib --no-default-features --target thumbv7m-none-eabi
- name: Lint no_std surface
run: cargo clippy --lib --no-default-features --target thumbv7m-none-eabi -- -D warnings
test:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
features:
- "--no-default-features"
- "--features std"
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
- name: Run tests
run: cargo test ${{ matrix.features }}
fuzz:
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Install Rust nightly
uses: dtolnay/rust-toolchain@nightly
- name: Install cargo-fuzz
run: cargo install cargo-fuzz
- name: Run fuzzer
run: |
if [ "${{ github.event_name }}" = "pull_request" ]; then
duration=300
else
duration=30
fi
cargo fuzz run fuzz_archive tests/data/valid tests/data/invalid tests/data/manual/go-archive-zip -- -max_total_time=$duration