aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/ufuzz.yml
blob: 48a3ba6c3ef7bf452e4afb5e348c658b1fe2b61d (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
name: Fuzzing
on:
  pull_request:
  schedule:
    - cron: '*/5 * * * *'
env:
  BASE_URL: https://api.github.com/repos/${{ github.repository }}
  CAUSE: ${{ github.event_name }}
  RUN_NUM: ${{ github.run_number }}
  TOKEN: ${{ github.token }}
jobs:
  ufuzz:
    strategy:
      fail-fast: false
      matrix:
        include:
          - node: latest
            os: macos-latest
          - node: '8'
            os: ubuntu-latest
          - node: '8'
            os: ubuntu-latest
          - node: '8'
            os: windows-latest
          - node: '8'
            os: windows-latest
    name: ${{ matrix.node }} ${{ matrix.os }}
    runs-on: ${{ matrix.os }}
    env:
      NODE: ${{ matrix.node }}
    steps:
      - uses: actions/checkout@v2
      - name: Install GNU Core Utilities
        if: ${{ startsWith(matrix.os, 'macos') }}
        shell: bash
        run: |
          brew install coreutils
      - name: Perform fuzzing
        shell: bash
        run: |
          git clone --branch v1.6.0 --depth 1 https://github.com/jasongin/nvs.git ~/.nvs
          while ! timeout 60 bash -c '. ~/.nvs/nvs.sh add $NODE && nvs use $NODE'; do
            cd ~/.nvs
            while !(git clean -xdf); do echo "'git clean' failed - retrying..."; done
            cd -
          done
          . ~/.nvs/nvs.sh --version
          nvs use $NODE
          node --version
          npm config set audit false
          npm config set optional false
          npm config set save false
          npm config set strict-ssl false
          npm config set update-notifier false
          npm --version
          while !(npm install); do echo "'npm install' failed - retrying..."; done
          if [[ $CAUSE == "schedule" ]]; then
            node test/ufuzz/job $BASE_URL $TOKEN $RUN_NUM
          else
            node test/ufuzz/job 5000
          fi