# Runs fuzzing nightly. name: fuzz-nightly on: workflow_dispatch: # allow running workflow manually schedule: - cron: '0 3 * * *' jobs: fuzz-nightly-test: runs-on: ubuntu-latest steps: - uses: actions/setup-go@v2 with: go-version: '1.15' - uses: actions/checkout@v2 - name: Install go-fuzz working-directory: test/fuzz run: go get -u github.com/dvyukov/go-fuzz/go-fuzz github.com/dvyukov/go-fuzz/go-fuzz-build - name: Fuzz mempool working-directory: test/fuzz run: timeout 10m make fuzz-mempool - name: Fuzz p2p-addrbook working-directory: test/fuzz run: timeout 10m make fuzz-p2p-addrbook - name: Fuzz p2p-pex working-directory: test/fuzz run: timeout 10m make fuzz-p2p-pex - name: Fuzz p2p-sc working-directory: test/fuzz run: timeout 10m make fuzz-p2p-sc - name: Fuzz p2p-rpc-server working-directory: test/fuzz run: timeout 10m make fuzz-rpc-server - name: Set crashers count working-directory: test/fuzz run: echo "::set-output name=crashers-count::$(find . -type d -name "crashers" | xargs -I % sh -c 'ls % | wc -l' | awk '{total += $1} END {print total}')" id: set-crashers-count outputs: crashers_count: ${{ steps.set-crashers-count.outputs.crashers-count }} fuzz-nightly-fail: needs: fuzz-nightly-test if: ${{ needs.set-crashers-count.outputs.crashers-count != 0 }} runs-on: ubuntu-latest steps: - name: Notify Slack if any crashers uses: rtCamp/action-slack-notify@ae4223259071871559b6e9d08b24a63d71b3f0c0 env: SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} SLACK_CHANNEL: tendermint-internal SLACK_USERNAME: Nightly Fuzz Tests SLACK_ICON_EMOJI: ':firecracker:' SLACK_COLOR: danger SLACK_MESSAGE: Crashers found in Nightly Fuzz tests SLACK_FOOTER: ''