1name: Project tests 2 3on: 4 pull_request: 5 branches: 6 - master 7 8jobs: 9 build: 10 runs-on: ubuntu-latest 11 strategy: 12 fail-fast: false 13 matrix: 14 engine: 15 - libfuzzer 16 sanitizer: 17 - address 18 - memory 19 - undefined 20 - coverage 21 architecture: 22 - x86_64 23 include: 24 - engine: afl 25 sanitizer: address 26 architecture: x86_64 27 - engine: honggfuzz 28 sanitizer: address 29 architecture: x86_64 30 - engine: libfuzzer 31 sanitizer: address 32 architecture: i386 33 - engine: none 34 sanitizer: address 35 architecture: x86_64 36 - engine: dataflow 37 sanitizer: dataflow 38 architecture: x86_64 39 env: 40 ENGINE: ${{ matrix.engine }} 41 SANITIZER: ${{ matrix.sanitizer }} 42 ARCHITECTURE: ${{ matrix.architecture }} 43 44 steps: 45 - name: Cancel previous 46 uses: styfle/cancel-workflow-action@0.8.0 47 with: 48 access_token: ${{ github.token }} 49 50 - uses: actions/checkout@v2 51 - run: | # Needed for git diff to work. 52 git fetch origin master --depth 1 53 git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/master 54 55 - name: Clear unnecessary files 56 run: | 57 sudo swapoff -a 58 sudo rm -f /swapfile 59 sudo apt clean 60 docker rmi $(docker images -a -q) 61 df -h 62 63 - name: Setup python environment 64 uses: actions/setup-python@v2 65 with: 66 python-version: 3.8 67 68 - name: Install dependencies 69 run: | 70 python -m pip install --upgrade pip 71 pip install -r infra/ci/requirements.txt 72 73 - name: Run project tests 74 run: python infra/ci/build.py 75