Skip to content

Commit f1a58a4

Browse files
authored
chore: Add workflow to minimize fuzz corpuses (#4120)
Signed-off-by: Robert Kruszewski <[email protected]>
1 parent 44f48a0 commit f1a58a4

File tree

1 file changed

+97
-0
lines changed

1 file changed

+97
-0
lines changed
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
name: Minimize Fuzz Corpus
2+
3+
on:
4+
workflow_dispatch:
5+
6+
jobs:
7+
io_fuzz_minimize:
8+
name: "Minimize IO Fuzz Corpus"
9+
runs-on:
10+
- runs-on=${{ github.run_id }}
11+
- family=m8g.2xlarge
12+
- image=ubuntu24-full-arm64
13+
- disk=large
14+
- extras=s3-cache
15+
- tag=io-fuzz-minimize
16+
steps:
17+
- uses: runs-on/action@v2
18+
with:
19+
sccache: s3
20+
- uses: actions/checkout@v4
21+
- uses: ./.github/actions/setup-rust
22+
with:
23+
toolchain: nightly
24+
- name: Install cargo fuzz
25+
run: cargo install --locked cargo-fuzz
26+
- name: Restore corpus
27+
shell: bash
28+
run: |
29+
aws s3 cp s3://vortex-fuzz-corpus/io_corpus.tar.zst .
30+
tar -xf io_corpus.tar.zst
31+
env:
32+
AWS_ACCESS_KEY_ID: ${{ secrets.R2_FUZZ_ACCESS_KEY_ID }}
33+
AWS_SECRET_ACCESS_KEY: ${{ secrets.R2_FUZZ_SECRET_ACCESS_KEY }}
34+
AWS_REGION: "us-east-1"
35+
AWS_ENDPOINT_URL: "https://01e9655179bbec953276890b183039bc.r2.cloudflarestorage.com"
36+
- name: Minimize corpus
37+
run: |
38+
mkdir -p fuzz/corpus/file_io_2
39+
cargo +nightly fuzz cmin file_io fuzz/corpus/file_io -- fuzz/corpus/file_io_2
40+
rm -rf fuzz/corpus/file_io
41+
mv fuzz/corpus/file_io_2 fuzz/corpus/file_io
42+
- name: Persist corpus
43+
shell: bash
44+
run: |
45+
tar -acf io_corpus.tar.zst fuzz/corpus/file_io
46+
aws s3api put-object --bucket vortex-fuzz-corpus --key "io_corpus.tar.zst" --body io_corpus.tar.zst --checksum-algorithm CRC32
47+
env:
48+
AWS_ACCESS_KEY_ID: ${{ secrets.R2_FUZZ_ACCESS_KEY_ID }}
49+
AWS_SECRET_ACCESS_KEY: ${{ secrets.R2_FUZZ_SECRET_ACCESS_KEY }}
50+
AWS_REGION: "us-east-1"
51+
AWS_ENDPOINT_URL: "https://01e9655179bbec953276890b183039bc.r2.cloudflarestorage.com"
52+
53+
ops_fuzz_minimize:
54+
name: "Minimize Array Ops Fuzz Corpus"
55+
runs-on:
56+
- runs-on=${{ github.run_id }}
57+
- family=m8g.2xlarge
58+
- image=ubuntu24-full-arm64
59+
- disk=large
60+
- extras=s3-cache
61+
- tag=ops-fuzz-minimize
62+
steps:
63+
- uses: runs-on/action@v2
64+
with:
65+
sccache: s3
66+
- uses: actions/checkout@v4
67+
- uses: ./.github/actions/setup-rust
68+
with:
69+
toolchain: nightly
70+
- name: Install cargo fuzz
71+
run: cargo install --locked cargo-fuzz
72+
- name: Restore corpus
73+
shell: bash
74+
run: |
75+
aws s3 cp s3://vortex-fuzz-corpus/array_ops_corpus.tar.zst .
76+
tar -xf array_ops_corpus.tar.zst
77+
env:
78+
AWS_ACCESS_KEY_ID: ${{ secrets.R2_FUZZ_ACCESS_KEY_ID }}
79+
AWS_SECRET_ACCESS_KEY: ${{ secrets.R2_FUZZ_SECRET_ACCESS_KEY }}
80+
AWS_REGION: "us-east-1"
81+
AWS_ENDPOINT_URL: "https://01e9655179bbec953276890b183039bc.r2.cloudflarestorage.com"
82+
- name: Minimize corpus
83+
run: |
84+
mkdir -p fuzz/corpus/array_ops_2
85+
cargo +nightly fuzz cmin array_ops fuzz/corpus/array_ops -- fuzz/corpus/array_ops_2
86+
rm -rf fuzz/corpus/array_ops
87+
mv fuzz/corpus/array_ops_2 fuzz/corpus/array_ops
88+
- name: Persist corpus
89+
shell: bash
90+
run: |
91+
tar -acf array_ops_corpus.tar.zst fuzz/corpus/array_ops
92+
aws s3api put-object --bucket vortex-fuzz-corpus --key "array_ops_corpus.tar.zst" --body array_ops_corpus.tar.zst --checksum-algorithm CRC32
93+
env:
94+
AWS_ACCESS_KEY_ID: ${{ secrets.R2_FUZZ_ACCESS_KEY_ID }}
95+
AWS_SECRET_ACCESS_KEY: ${{ secrets.R2_FUZZ_SECRET_ACCESS_KEY }}
96+
AWS_REGION: "us-east-1"
97+
AWS_ENDPOINT_URL: "https://01e9655179bbec953276890b183039bc.r2.cloudflarestorage.com"

0 commit comments

Comments
 (0)