diff --git a/.github/workflows/cflite_batch.yml b/.github/workflows/cflite_batch.yml new file mode 100644 index 0000000000..727a588c72 --- /dev/null +++ b/.github/workflows/cflite_batch.yml @@ -0,0 +1,38 @@ +# Derived from: https://google.github.io/clusterfuzzlite/running-clusterfuzzlite/github-actions/ + +name: ClusterFuzzLite batch fuzzing +on: + schedule: + - cron: '0 14 * * *' # Run daily, hour chosen by fair dice roll +permissions: read-all +jobs: + BatchFuzzing: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + sanitizer: + - address + # Override this with the sanitizers you want. + # - undefined + # - memory + steps: + - name: Build Fuzzers (${{ matrix.sanitizer }}) + id: build + uses: google/clusterfuzzlite/actions/build_fuzzers@v1 + with: + sanitizer: ${{ matrix.sanitizer }} + - name: Run Fuzzers (${{ matrix.sanitizer }}) + id: run + uses: google/clusterfuzzlite/actions/run_fuzzers@v1 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + fuzz-seconds: 900 # 15min + mode: 'batch' + sanitizer: ${{ matrix.sanitizer }} + # Optional but recommended: For storing certain artifacts from fuzzing. + # See later section on "Git repo for storage". + storage-repo: https://${{ secrets.PERSONAL_ACCESS_TOKEN }}@github.com/TokTok/toktok-fuzzer.git + storage-repo-branch: main # Optional. Defaults to "main" + storage-repo-branch-coverage: gh-pages # Optional. Defaults to "gh-pages". + diff --git a/.github/workflows/cflite_cron.yml b/.github/workflows/cflite_cron.yml new file mode 100644 index 0000000000..0e6c1d61c0 --- /dev/null +++ b/.github/workflows/cflite_cron.yml @@ -0,0 +1,48 @@ +# Derived from: https://google.github.io/clusterfuzzlite/running-clusterfuzzlite/github-actions/ + +name: ClusterFuzzLite cron tasks +on: + schedule: + - cron: '0 16 * * *' # Once a day, after fuzzing run +permissions: read-all +jobs: + Pruning: + runs-on: ubuntu-latest + steps: + - name: Build Fuzzers + id: build + uses: google/clusterfuzzlite/actions/build_fuzzers@v1 + - name: Run Fuzzers + id: run + uses: google/clusterfuzzlite/actions/run_fuzzers@v1 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + fuzz-seconds: 600 + mode: 'prune' + # Optional but recommended. + # See later section on "Git repo for storage". + storage-repo: https://${{ secrets.PERSONAL_ACCESS_TOKEN }}@github.com/TokTok/toktok-fuzzer.git + storage-repo-branch: main # Optional. Defaults to "main" + storage-repo-branch-coverage: gh-pages # Optional. Defaults to "gh-pages". + Coverage: + runs-on: ubuntu-latest + steps: + - name: Build Fuzzers + id: build + uses: google/clusterfuzzlite/actions/build_fuzzers@v1 + with: + sanitizer: coverage + - name: Run Fuzzers + id: run + uses: google/clusterfuzzlite/actions/run_fuzzers@v1 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + fuzz-seconds: 600 + mode: 'coverage' + sanitizer: 'coverage' + # Optional but recommended. + # See later section on "Git repo for storage". + storage-repo: https://${{ secrets.PERSONAL_ACCESS_TOKEN }}@github.com/TokTok/toktok-fuzzer.git + storage-repo-branch: main # Optional. Defaults to "main" + storage-repo-branch-coverage: gh-pages # Optional. Defaults to "gh-pages". +