Allow overriding programs from the command line #481
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 }} | |
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 |