-
-
Notifications
You must be signed in to change notification settings - Fork 0
55 lines (48 loc) · 1.75 KB
/
Copy pathcflite_pr.yml
File metadata and controls
55 lines (48 loc) · 1.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# SPDX-License-Identifier: MPL-2.0
# ClusterFuzzLite PR Fuzzing - Layer 6
#
# Runs on every PR for 5 minutes to catch obvious bugs
# Full fuzzing runs happen in cflite_batch.yml
name: ClusterFuzzLite PR Fuzzing
on:
pull_request:
paths:
- 'impl/rust-cli/src/**'
- 'impl/rust-cli/fuzz/**'
- '.clusterfuzzlite/**'
permissions:
contents: read
jobs:
pr_fuzzing:
runs-on: ubuntu-latest
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
# cargo-fuzz hard-codes ASan for Rust, so only `address` yields a valid
# build (see .clusterfuzzlite/project.yaml for the full rationale).
sanitizer: [address]
steps:
- name: Checkout code
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v4
- 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: 300 # 5 minutes per sanitizer
mode: 'code-change'
sanitizer: ${{ matrix.sanitizer }}
output-sarif: true
- name: Upload SARIF (if crashes found)
if: always() && steps.run.outputs.sarif-output != ''
uses: github/codeql-action/upload-sarif@7188fc363630916deb702c7fdcf4e481b751f97a # v4
with:
sarif_file: ${{ steps.run.outputs.sarif-output }}
category: clusterfuzzlite-${{ matrix.sanitizer }}