123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- name: msys2
- concurrency:
- group: msys2-${{ github.head_ref || github.ref }}
- cancel-in-progress: true
- on:
- push:
- paths:
- - "mesonbuild/**"
- - "test cases/**"
- - "unittests/**"
- - ".github/workflows/msys2.yml"
- - "run_unittests.py"
- pull_request:
- paths:
- - "mesonbuild/**"
- - "test cases/**"
- - "unittests/**"
- - ".github/workflows/msys2.yml"
- - "run_unittests.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 }}
- # XXX: For some reason enabling jit debugging "fixes" random python crashes
- # see https://github.com/msys2/MINGW-packages/issues/11864
- MSYS: "winjitdebug"
- 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 }}-${{ matrix.TOOLCHAIN }}
- - name: Install dependencies
- run: |
- python3 -m pip --disable-pip-version-check install gcovr jsonschema pefile pytest pytest-subtests pytest-xdist coverage codecov
- - 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: Upload coverage report
- run: ./ci/upload_cov.sh "${{ matrix.NAME }}"
|