name: msys2

concurrency:
  group: msys2-${{ github.head_ref || github.ref }}
  cancel-in-progress: true

on:
  push:
    branches:
      - master
      # Stable branches such as 0.56 or 1.0
      - '[0-9]+.[0-9]+'
    paths:
      - "mesonbuild/**"
      - "test cases/**"
      - "unittests/**"
      - ".github/workflows/msys2.yml"
      - "run*tests.py"
  pull_request:
    paths:
      - "mesonbuild/**"
      - "test cases/**"
      - "unittests/**"
      - ".github/workflows/msys2.yml"
      - "run*tests.py"

permissions:
  contents: read

jobs:
  test:
    runs-on: windows-2019
    name: ${{ matrix.NAME }}
    strategy:
      fail-fast: false
      matrix:
        include:
          - NAME: gccx86ninja
            MSYSTEM: MINGW32
            MSYS2_ARCH: i686
            MSYS2_CURSES: ncurses
            COMPILER: gcc
            TOOLCHAIN: toolchain
          - NAME: gccx64ninja
            MSYSTEM: MINGW64
            MSYS2_ARCH: x86_64
            MSYS2_CURSES: pdcurses
            COMPILER: gcc
            TOOLCHAIN: toolchain
          - NAME: clangx64ninja
            MSYSTEM: MINGW64
            MSYS2_ARCH: x86_64
            MSYS2_CURSES:
            COMPILER: clang
            TOOLCHAIN: clang
    env:
      MESON_CI_JOBNAME: msys2-${{ matrix.NAME }}

    defaults:
      run:
        shell: msys2 {0}

    steps:
      - uses: actions/checkout@v3

      - uses: msys2/setup-msys2@v2
        with:
          msystem: ${{ matrix.MSYSTEM }}
          update: true
          install: >-
            base-devel
            git
            mercurial
            lcov
            wget
            unzip
            mingw-w64-${{ matrix.MSYS2_ARCH }}-cmake
            mingw-w64-${{ matrix.MSYS2_ARCH }}-glib2
            mingw-w64-${{ matrix.MSYS2_ARCH }}-libxml2
            mingw-w64-${{ matrix.MSYS2_ARCH }}-ninja
            mingw-w64-${{ matrix.MSYS2_ARCH }}-pkg-config
            mingw-w64-${{ matrix.MSYS2_ARCH }}-python2
            mingw-w64-${{ matrix.MSYS2_ARCH }}-python
            mingw-w64-${{ matrix.MSYS2_ARCH }}-python-lxml
            mingw-w64-${{ matrix.MSYS2_ARCH }}-python-setuptools
            mingw-w64-${{ matrix.MSYS2_ARCH }}-python-pip
            mingw-w64-${{ matrix.MSYS2_ARCH }}-python-fastjsonschema
            mingw-w64-${{ matrix.MSYS2_ARCH }}-${{ matrix.TOOLCHAIN }}

      - name: Install dependencies
        run: |
          python3 -m pip --disable-pip-version-check install gcovr pefile pytest pytest-subtests pytest-xdist coverage

      - name: Install pypy3 on x86_64
        run: |
          mkdir pypy3local
          pushd pypy3local
          wget -nv https://downloads.python.org/pypy/pypy3.8-v7.3.9-win64.zip
          unzip pypy3.8-v7.3.9-win64.zip
          mv pypy3.8-v7.3.9-win64/* ./
          popd
        if: ${{ matrix.MSYS2_ARCH == 'x86_64' }}

      - name: Run Tests
        run: |
          if [[ "${{ matrix.MSYS2_ARCH }}" == "x86_64" ]]; then
            # There apparently is no clean way to add to the PATH in the
            # previous step?
            # See for instance https://github.com/msys2/setup-msys2/issues/171
            export PATH=$PATH:$PWD/pypy3local
            # Make sure it is on the PATH
            pypy3 -c "import sys; print(sys.version)"
          fi
          export PATHEXT="$PATHEXT;.py"

          if [[ '${{ matrix.COMPILER }}' == 'clang' ]]; then
            export CC=clang
            export CXX=clang++
            export OBJC=clang
            export OBJCXX=clang++
          fi

          if [[ "${{ matrix.MSYS2_CURSES }}" != "" ]]; then
            pacman --noconfirm --needed -S mingw-w64-${{ matrix.MSYS2_ARCH }}-${{ matrix.MSYS2_CURSES }}
          fi

          MSYSTEM= python3 ./tools/run_with_cov.py run_tests.py --backend=ninja

      - uses: actions/upload-artifact@v3
        with:
          name: ${{ matrix.NAME }}
          path: meson-test-run.*

      - name: Aggregate coverage reports
        run: ./ci/combine_cov.sh

      - name: Upload coverage report
        uses: codecov/codecov-action@v3
        with:
          files: .coverage/coverage.xml
          name: "${{ matrix.NAME }}"
          fail_ci_if_error: false
          verbose: true
