name: "Monkey Test"

on: [pull_request]

jobs:
  test:
    name: '${{ matrix.test }}'
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        test:
          - short-internet

    steps:
    - name: Checkout repository
      uses: actions/checkout@v3
      with:
        fetch-depth: 1

    - name: apt-get install packages
      run: sudo apt-get update -qq &&
           sudo apt-get install --no-install-recommends -y
               bison
               build-essential
               ccache
               check
               clang
               flex
               git
               gperf
               libcurl4-openssl-dev
               libgtk-3-dev
               libhtml-parser-perl
               libjpeg-dev
               libpng-dev
               librsvg2-dev
               llvm
               pkg-config
               wbritish # Needed for `/usr/share/dict/words`, used by test

    - name: ccache
      uses: hendrikmuhs/ccache-action@v1.2
      with:
        key: ${{ github.job }}
        max-size: 128M

    - name: Build and install project libs
      run: |
          export TARGET_WORKSPACE="$(pwd)/projects"
          source docs/env.sh
          ns-clone -d -s
          ns-make-tools install
          ns-make-libs install

    - name: Disable -Werror
      # We can remove this step if we ever move to GitHub properly.
      run: |
          find . -type f -name Makefile | xargs sed -i 's/-Werror//'

    - name: Build NetSurf Monkey
      run: |
          export TARGET_WORKSPACE="$(pwd)/projects"
          source docs/env.sh
          make -j"$(nproc)" TARGET=monkey

    - name: Run Monkey Test
      run: |
          LC_ALL=C.UTF-8 test/monkey-see-monkey-do -v -d ${{ matrix.test }}
