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.
144 lines
4.2 KiB
144 lines
4.2 KiB
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@v4 |
|
|
|
- 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 }}-objfw |
|
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@v4 |
|
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
|
|
|