Nightly Fuzzing #83
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # | |
| # SPDX-License-Identifier: MIT | |
| # | |
| # Copyright (C) 2026 Daniel Bourdrez. All Rights Reserved. | |
| # | |
| # This source code is licensed under the MIT license found in the | |
| # LICENSE file in the root directory of this source tree or at | |
| # https://spdx.org/licenses/MIT.html | |
| # | |
| --- | |
| name: Nightly Fuzzing | |
| on: | |
| schedule: | |
| - cron: '0 2 * * *' | |
| workflow_dispatch: | |
| inputs: | |
| time_per_target: | |
| description: 'Number of seconds to fuzz each target (default: 120s)' | |
| required: false | |
| default: '120s' | |
| permissions: { } | |
| jobs: | |
| fuzz: | |
| if: github.event_name != 'schedule' || github.ref == 'refs/heads/main' | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| go: [ '1.26' ] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Harden Runner | |
| uses: step-security/harden-runner@fe104658747b27e96e4f7e80cd0a94068e53901d | |
| with: | |
| disable-sudo: true | |
| egress-policy: block | |
| allowed-endpoints: > | |
| api.github.com:443 | |
| github.com:443 | |
| go.dev:443 | |
| golang.org:443 | |
| proxy.golang.org:443 | |
| results-receiver.actions.githubusercontent.com:443 | |
| release-assets.githubusercontent.com:443 | |
| *.blob.core.windows.net:443 | |
| - name: Checkout repo | |
| uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98 | |
| with: | |
| fetch-depth: 0 | |
| - name: Init go | |
| uses: bytemare/actions/init-go@e8f57f812a1e4012dc85c374bf56edd98be3ca41 | |
| with: | |
| go-version: ${{ matrix.go }} | |
| # Persist the dedicated CI fuzz cache across nightly runs so the fuzzer can | |
| # keep benefiting from previously discovered interesting inputs. | |
| - name: Restore fuzz cache | |
| uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 | |
| with: | |
| path: .gocache-fuzz-ci | |
| key: nightly-fuzz-${{ runner.os }}-go${{ matrix.go }}-${{ hashFiles('go.mod', 'go.sum', 'tests/**/*.go') }} | |
| restore-keys: | | |
| nightly-fuzz-${{ runner.os }}-go${{ matrix.go }}- | |
| - name: Run Tests | |
| run: make -C .github test | |
| - name: Fuzz | |
| env: | |
| FUZZTIME: ${{ github.event.inputs.time_per_target }} | |
| run: make -C .github fuzz-ci |