6ab0110964 Run fuzzer daily (Tobin C. Harding)

Pull request description:

  Waiting for the fuzzer slows down the dev feedback loop because it makes CI slow. We still want fuzz coverage but not in a way that slows down devs.

  Instead of running the fuzzer on every PR just run it once a nightly.

  As we do for other daily jobs, rename the yaml file to make explicit what it does.

  Note also we only get 20 jobs, currently there are 18 fuzzing jobs. This means for this hour any other CI runs will only have access to 2 jobs (if i understand GitHub resource usage correctly).

  ### Open questions

  Docs: https://docs.github.com/en/actions/learn-github-actions/usage-limits-billing-and-administration

  > Concurrent jobs - The number of concurrent jobs you can run in your account depends on your GitHub plan,

  What is the definition of "account" - is that a user account, or a repository? Which account is running the cron job?

ACKs for top commit:
  apoelstra:
    ACK 6ab0110964 though if this proves too onerous we should try 30 or even 15 minutes

Tree-SHA512: d6d07d16b550fe27258c97cb4da305f0bec16d39788da3cf061e9db7ca4a039897dc1a91b394ccc03cd4cd5427d3da94dd7c0ec4e0a80410bd48d029d4112d4e
This commit is contained in:
Andrew Poelstra 2024-03-27 00:00:02 +00:00
commit ebcddfce19
No known key found for this signature in database
GPG Key ID: C588D63CE41B97C1
2 changed files with 9 additions and 7 deletions

View File

@ -1,12 +1,12 @@
# Automatically generated by fuzz/generate-files.sh # Automatically generated by fuzz/generate-files.sh
name: Fuzz name: Fuzz
on: on:
push: schedule:
branches: # 5am every day UTC, this correlates to:
- master # - 10pm PDT
- 'test-ci/**' # - 6am CET
pull_request: # - 4pm AEDT
- cron: '00 05 * * *'
jobs: jobs:
fuzz: fuzz:
@ -15,6 +15,8 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
# We only get 20 jobs at a time, we probably don't want to go
# over that limit with fuzzing because of the hour run time.
fuzz_target: [ fuzz_target: [
bitcoin_deserialize_address, bitcoin_deserialize_address,
bitcoin_deserialize_block, bitcoin_deserialize_block,

View File

@ -28,7 +28,7 @@ for targetFile in $targetFiles; do
else else
HFUZZ_INPUT_ARGS="" HFUZZ_INPUT_ARGS=""
fi fi
HFUZZ_RUN_ARGS="--run_time 30 --exit_upon_crash -v $HFUZZ_INPUT_ARGS" cargo hfuzz run "$targetName" HFUZZ_RUN_ARGS="--run_time 3600 --exit_upon_crash -v $HFUZZ_INPUT_ARGS" cargo hfuzz run "$targetName"
checkReport "$targetName" checkReport "$targetName"
done done