The Meson Build System http://mesonbuild.com/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

134 lines
3.9 KiB

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 }}"