Skip to content

ClusterFuzzLite batch fuzzing #32

ClusterFuzzLite batch fuzzing

ClusterFuzzLite batch fuzzing #32

name: ClusterFuzzLite batch fuzzing
on:
workflow_dispatch:
inputs:
fuzz-seconds:
description: 'Total time to fuzz, in seconds'
required: true
default: '3600'
type: string
schedule:
- cron: '0 3 * * *'
permissions:
contents: read
jobs:
BatchFuzzing:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
sanitizer:
- address
steps:
- name: Harden Runner
uses: step-security/harden-runner@1b05615854632b887b69ae1be8cbefe72d3ae423 # v2.6.0
with:
egress-policy: audit
- name: Build Fuzzers (${{ matrix.sanitizer }})
id: build
uses: google/clusterfuzzlite/actions/build_fuzzers@884713a6c30a92e5e8544c39945cd7cb630abcd1 # v1
with:
language: rust
sanitizer: ${{ matrix.sanitizer }}
- name: Run Fuzzers (${{ matrix.sanitizer }})
id: run
uses: google/clusterfuzzlite/actions/run_fuzzers@884713a6c30a92e5e8544c39945cd7cb630abcd1 # v1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
fuzz-seconds: ${{ inputs.fuzz-seconds || '3600' }}
mode: 'batch'
sanitizer: ${{ matrix.sanitizer }}
output-sarif: true
storage-repo: https://${{ secrets.CLUSTERFUZZLITE_STORAGE_TOKEN }}@github.com/rsonquery/rsonpath-fuzz-storage.git
ReportCrash:
runs-on: ubuntu-latest
permissions:
contents: read
issues: write
needs: BatchFuzzing
if: ${{ always() && needs.BatchFuzzing.result == 'failure' }}
steps:
- name: Harden Runner
uses: step-security/harden-runner@1b05615854632b887b69ae1be8cbefe72d3ae423 # v2.6.0
with:
egress-policy: audit
- name: Report crash
id: report
uses: JasonEtco/create-an-issue@e27dddc79c92bc6e4562f268fffa5ed752639abd # v2.9.1
with:
filename: .github/internal_templates/fuzz_failure.md
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
RUN_ID: ${{ github.run_id }}
storage-repo-branch: main
storage-repo-branch-coverage: gh-pages