name: Nightly fuzzing
on:
schedule:
- cron: "0 3 * * *" workflow_dispatch:
concurrency:
group: fuzz
cancel-in-progress: true
jobs:
fuzz:
name: Nightly fuzzers
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Install system packages
run: |
sudo apt-get update
sudo apt-get install -y clang lld build-essential pkg-config libclang-dev
- name: Setup Rust nightly
uses: actions-rs/toolchain@v1
with:
toolchain: nightly
override: true
- name: Install cargo-fuzz
run: cargo install cargo-fuzz --force
- name: Build workspace
run: cargo +nightly build --workspace --release
- name: Run fuzzing
run: |
find fuzz/fuzz_targets -name '*.rs' \
| sed -E 's|fuzz/fuzz_targets/(.+)\.rs|cargo +nightly fuzz run \1 -- -max_total_time=1800 -workers=2|g' \
| sh
- name: Upload fuzz artifacts
uses: actions/upload-artifact@v7
with:
name: fuzz-artifacts
path: |
fuzz/artifacts
fuzz/corpus