ci: enable the new python 3.7 developer mode during tests
[pygobject.git] / .gitlab-ci / test-msys2.sh
blob2b11aea6ae77a05cace2aea9e453dbbda0c2b9f9
1 #!/bin/bash
3 set -e
5 # skip the fontconfig cache, it's slooowww
6 export MSYS2_FC_CACHE_SKIP=1
7 export PANGOCAIRO_BACKEND=win32
9 export PATH="/c/msys64/$MSYSTEM/bin:$PATH"
10 if [[ "$MSYSTEM" == "MINGW32" ]]; then
11 export MSYS2_ARCH="i686"
12 else
13 export MSYS2_ARCH="x86_64"
16 pacman --noconfirm -Suy
18 pacman --noconfirm -S --needed \
19 base-devel \
20 mingw-w64-$MSYS2_ARCH-toolchain \
21 mingw-w64-$MSYS2_ARCH-ccache \
22 mingw-w64-$MSYS2_ARCH-$PYTHON-cairo \
23 mingw-w64-$MSYS2_ARCH-$PYTHON \
24 mingw-w64-$MSYS2_ARCH-$PYTHON-pip \
25 mingw-w64-$MSYS2_ARCH-$PYTHON-pytest \
26 mingw-w64-$MSYS2_ARCH-$PYTHON-coverage \
27 mingw-w64-$MSYS2_ARCH-gobject-introspection \
28 mingw-w64-$MSYS2_ARCH-libffi \
29 mingw-w64-$MSYS2_ARCH-glib2 \
30 mingw-w64-$MSYS2_ARCH-gtk3 \
31 git \
32 perl
34 # ccache setup
35 export PATH="$MSYSTEM/lib/ccache/bin:$PATH"
36 mkdir -p _ccache
37 export CCACHE_BASEDIR="$(pwd)"
38 export CCACHE_DIR="${CCACHE_BASEDIR}/_ccache"
40 # coverage setup
41 export CFLAGS="-coverage -ftest-coverage -fprofile-arcs -Werror"
42 PYVER=$($PYTHON -c "import sys; sys.stdout.write(''.join(map(str, sys.version_info[:3])))")
43 COV_DIR="$(pwd)/coverage"
44 COV_KEY="${MSYSTEM}.${PYVER}"
45 mkdir -p "${COV_DIR}"
46 export COVERAGE_FILE="${COV_DIR}/.coverage.${COV_KEY}"
48 # https://docs.python.org/3/using/cmdline.html#envvar-PYTHONDEVMODE
49 export PYTHONDEVMODE=1
51 $PYTHON setup.py build_tests
52 MSYSTEM= $PYTHON -m coverage run tests/runtests.py
54 curl -O -J -L "https://github.com/linux-test-project/lcov/archive/master.tar.gz"
55 tar -xvzf lcov-master.tar.gz
57 ./lcov-master/bin/lcov \
58 --rc lcov_branch_coverage=1 --no-external \
59 --directory . --capture --output-file \
60 "${COV_DIR}/${COV_KEY}.lcov"