name: Fuzz
on:
schedule:
- cron: '0 0 1 * *' workflow_dispatch:
jobs:
fuzz:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install nightly toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: nightly
- name: Install cargo-fuzz
run: cargo install cargo-fuzz
- name: Run fuzz test
run: cargo +nightly fuzz run fuzz_target_1 -- -max_total_time=600
continue-on-error: true
id: fuzz
- name: Upload crash artifacts
if: steps.fuzz.outcome == 'failure'
uses: actions/upload-artifact@v4
with:
name: fuzz-artifacts
path: fuzz/artifacts/
retention-days: 90
- name: Fail if crash found
if: steps.fuzz.outcome == 'failure'
run: exit 1