github.com/Finschia/ostracon@v1.1.5/.github/workflows/fuzz-nightly.yml (about) 1 # Runs fuzzing nightly. 2 name: fuzz-nightly 3 on: 4 workflow_dispatch: # allow running workflow manually 5 schedule: 6 - cron: '0 3 * * *' 7 8 jobs: 9 fuzz-nightly-test: 10 runs-on: ubuntu-latest 11 steps: 12 - uses: actions/setup-go@v4 13 with: 14 go-version: '1.20' 15 16 - uses: actions/checkout@v4 17 18 - name: Install go-fuzz 19 working-directory: test/fuzz 20 run: go get -u github.com/dvyukov/go-fuzz/go-fuzz github.com/dvyukov/go-fuzz/go-fuzz-build 21 22 - name: Fuzz mempool 23 working-directory: test/fuzz 24 run: timeout -s SIGINT --preserve-status 10m make fuzz-mempool 25 continue-on-error: true 26 27 - name: Fuzz p2p-addrbook 28 working-directory: test/fuzz 29 run: timeout -s SIGINT --preserve-status 10m make fuzz-p2p-addrbook 30 continue-on-error: true 31 32 - name: Fuzz p2p-pex 33 working-directory: test/fuzz 34 run: timeout -s SIGINT --preserve-status 10m make fuzz-p2p-pex 35 continue-on-error: true 36 37 - name: Fuzz p2p-sc 38 working-directory: test/fuzz 39 run: timeout -s SIGINT --preserve-status 10m make fuzz-p2p-sc 40 continue-on-error: true 41 42 - name: Fuzz p2p-rpc-server 43 working-directory: test/fuzz 44 run: timeout -s SIGINT --preserve-status 10m make fuzz-rpc-server 45 continue-on-error: true 46 47 - name: Archive crashers 48 uses: actions/upload-artifact@v3 49 with: 50 name: crashers 51 path: test/fuzz/**/crashers 52 retention-days: 1 53 54 - name: Archive suppressions 55 uses: actions/upload-artifact@v3 56 with: 57 name: suppressions 58 path: test/fuzz/**/suppressions 59 retention-days: 1 60 61 - name: Set crashers count 62 working-directory: test/fuzz 63 run: echo "count=$(find . -type d -name 'crashers' | xargs -I % sh -c 'ls % | wc -l' | awk '{total += $1} END {print total}')" >> $GITHUB_OUTPUT 64 id: set-crashers-count 65 66 outputs: 67 crashers-count: ${{ steps.set-crashers-count.outputs.count }} 68 69 # fuzz-nightly-fail: 70 # needs: fuzz-nightly-test 71 # if: ${{ needs.fuzz-nightly-test.outputs.crashers-count != 0 }} 72 # runs-on: ubuntu-latest 73 # steps: 74 # - name: Notify Slack if any crashers 75 # uses: rtCamp/action-slack-notify@12e36fc18b0689399306c2e0b3e0f2978b7f1ee7 76 # env: 77 # SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} 78 # SLACK_CHANNEL: ostracon-internal 79 # SLACK_USERNAME: Nightly Fuzz Tests 80 # SLACK_ICON_EMOJI: ':firecracker:' 81 # SLACK_COLOR: danger 82 # SLACK_MESSAGE: Crashers found in Nightly Fuzz tests 83 # SLACK_FOOTER: ''