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: ''