name: Fuzz
on:
push:
branches: [main]
schedule:
- cron: "0 2 * * *"
workflow_dispatch:
jobs:
fuzz-rodata:
name: fuzz rodata_deserialise
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install nightly toolchain
uses: dtolnay/rust-toolchain@nightly
- name: Install cargo-fuzz
run: cargo install cargo-fuzz
- name: Restore corpus cache
uses: actions/cache@v4
with:
path: fuzz/corpus/rodata_deserialise
key: fuzz-corpus-rodata-${{ github.sha }}
restore-keys: fuzz-corpus-rodata-
- name: Run fuzzer (10 minutes)
run: |
cargo +nightly fuzz run rodata_deserialise \
-- -max_total_time=600 -print_final_stats=1
- name: Upload crash artifacts
if: failure()
uses: actions/upload-artifact@v4
with:
name: fuzz-crashes-rodata
path: fuzz/artifacts/rodata_deserialise/