| name: Project tests |
| |
| on: |
| pull_request: |
| branches: |
| - master |
| |
| jobs: |
| build: |
| runs-on: ubuntu-latest |
| strategy: |
| fail-fast: false |
| matrix: |
| engine: |
| - libfuzzer |
| sanitizer: |
| - address |
| - memory |
| - undefined |
| - coverage |
| architecture: |
| - x86_64 |
| include: |
| - engine: afl |
| sanitizer: address |
| architecture: x86_64 |
| - engine: honggfuzz |
| sanitizer: address |
| architecture: x86_64 |
| - engine: libfuzzer |
| sanitizer: address |
| architecture: i386 |
| - engine: none |
| sanitizer: address |
| architecture: x86_64 |
| - engine: dataflow |
| sanitizer: dataflow |
| architecture: x86_64 |
| env: |
| ENGINE: ${{ matrix.engine }} |
| SANITIZER: ${{ matrix.sanitizer }} |
| ARCHITECTURE: ${{ matrix.architecture }} |
| |
| steps: |
| - name: Cancel previous |
| uses: styfle/cancel-workflow-action@0.8.0 |
| with: |
| access_token: ${{ github.token }} |
| |
| - uses: actions/checkout@v2 |
| - run: | # Needed for git diff to work. |
| git fetch origin master --depth 1 |
| git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/master |
| |
| - name: Clear unnecessary files |
| run: | |
| sudo swapoff -a |
| sudo rm -f /swapfile |
| sudo apt clean |
| docker rmi $(docker images -a -q) |
| df -h |
| |
| - name: Setup python environment |
| uses: actions/setup-python@v2 |
| with: |
| python-version: 3.8 |
| |
| - name: Install dependencies |
| run: | |
| python -m pip install --upgrade pip |
| pip install -r infra/ci/requirements.txt |
| |
| - name: Run project tests |
| run: python infra/ci/build.py |