Skip to content

nightly-fuzz

nightly-fuzz #100

Workflow file for this run

name: nightly-fuzz
on:
schedule:
- cron: "0 7 * * *" # daily at 07:00 UTC
workflow_dispatch:
# Deny-all by default; each job re-grants only what it needs.
permissions: {}
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
CARGO_TERM_COLOR: always
jobs:
fuzz:
runs-on: ubuntu-latest
timeout-minutes: 120
permissions:
contents: read
strategy:
fail-fast: false
matrix:
target: [ctree_insert_sequences, csr_loader_bytes]
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: dtolnay/rust-toolchain@6c977a6ca4077a0ceb28ffbe03f59d46e9ac8772 # v1
with:
toolchain: nightly
- uses: Swatinem/rust-cache@258712b0b7b1ddf8bddc9fc3b0faca682b2736c3 # v2
with:
key: fuzz-${{ matrix.target }}
- run: cargo install cargo-fuzz --locked
- name: Regenerate fixed-seed corpus
working-directory: fuzz
run: cargo run --bin seed_corpus
- name: fuzz ${{ matrix.target }} (90 min)
working-directory: fuzz
run: cargo +nightly fuzz run ${{ matrix.target }} -- -max_total_time=5400
- name: Upload corpus and crashes
if: always()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: fuzz-${{ matrix.target }}-artifacts
path: |
fuzz/corpus/${{ matrix.target }}
fuzz/artifacts/${{ matrix.target }}
if-no-files-found: ignore
retention-days: 14