From d61b41c8bbef4f075144109ee34a99f90495d367 Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Mon, 24 Nov 2025 16:29:26 -0800 Subject: [PATCH] github CI: add Signed-off-by: Rosen Penev --- .github/workflows/meson.yml | 228 ++++++++++++++++++++++++++++++++++++ 1 file changed, 228 insertions(+) create mode 100644 .github/workflows/meson.yml diff --git a/.github/workflows/meson.yml b/.github/workflows/meson.yml new file mode 100644 index 00000000..8edad331 --- /dev/null +++ b/.github/workflows/meson.yml @@ -0,0 +1,228 @@ +name: meson + +on: [push, pull_request] + +concurrency: + group: ${{github.workflow}}-${{github.head_ref}} + cancel-in-progress: true + +jobs: + Linux-GCC: + runs-on: ubuntu-22.04 + strategy: + matrix: + cc: ['9', '13'] + steps: + - uses: actions/checkout@v4 + - uses: egor-tensin/setup-gcc@v1 + with: + version: ${{matrix.cc}} + + - name: Install packages + run: | + python3 -m pip install meson ninja + + - name: Compile and Test + run: | + meson setup "${{github.workspace}}/build" -Dwarning_level=3 -Dbuildtype=debug + meson compile -C "${{github.workspace}}/build" --verbose + meson test -C "${{github.workspace}}/build" --verbose + Linux-Clang: + runs-on: ubuntu-22.04 + strategy: + matrix: + cc: ['9', '22'] + steps: + - uses: actions/checkout@v4 + - uses: egor-tensin/setup-clang@v1 + + - name: Install packages + run: | + python3 -m pip install meson ninja + + - name: Compile and Test + run: | + meson setup "${{github.workspace}}/build" -Dwarning_level=3 -Dbuildtype=debug + meson compile -C "${{github.workspace}}/build" --verbose + meson test -C "${{github.workspace}}/build" --verbose + VisualStudio: + runs-on: windows-latest + strategy: + matrix: + platform: ['x64', 'x86'] + steps: + - uses: actions/checkout@v4 + + - name: Install packages + run: | + python -m pip install meson ninja + + - uses: ilammy/msvc-dev-cmd@v1 + with: + arch: ${{matrix.platform}} + + - name: Compile and Test + env: + CFLAGS: '/analyze' + run: | + meson setup "${{github.workspace}}/build" --wrap-mode=forcefallback -Dwarning_level=3 -Dbuildtype=debug + meson compile -C "${{github.workspace}}/build" --verbose + meson test -C "${{github.workspace}}/build" --verbose + VisualStudio-clang-cl: + runs-on: windows-latest + steps: + - uses: actions/checkout@v4 + + - name: Install packages + run: | + python -m pip install meson ninja + + - uses: ilammy/msvc-dev-cmd@v1 + + - name: Compile and Test + env: + CC: clang-cl + run: | + meson setup "${{github.workspace}}/build" -Dwarning_level=3 -Dbuildtype=debug + meson compile -C "${{github.workspace}}/build" --verbose + meson test -C "${{github.workspace}}/build" --verbose + MSYS2: + runs-on: windows-latest + strategy: + matrix: + platform: ['UCRT64', 'CLANG64'] + defaults: + run: + shell: msys2 {0} + steps: + - uses: actions/checkout@v4 + + - uses: msys2/setup-msys2@v2 + with: + msystem: ${{matrix.platform}} + pacboy: >- + cc:p + cmake:p + meson:p + ninja:p + pkgconf:p + + - name: Compile and Test + run: | + meson setup "${{github.workspace}}/build" -Dwarning_level=3 -Dbuildtype=debug + meson compile -C "${{github.workspace}}/build" --verbose + meson test -C "${{github.workspace}}/build" --verbose + Cygwin: + runs-on: windows-latest + defaults: + run: + shell: msys2 {0} + steps: + - uses: actions/checkout@v4 + - uses: msys2/setup-msys2@v2 + with: + msystem: 'MSYS' + install: >- + gcc + meson + ninja + - name: Compile and Test + run: | + meson setup build -Dwarning_level=3 -Dcpp_std=gnu++20 -Dbuildtype=debug + meson compile -C build --verbose + meson test -C build --verbose + MacOS: + runs-on: macos-latest + steps: + - uses: actions/checkout@v4 + + - name: Install packages + run: | + brew install meson + + - name: Compile and Test + run: | + meson setup "${{github.workspace}}/build" -Dwarning_level=3 -Dbuildtype=debug + meson compile -C "${{github.workspace}}/build" --verbose + meson test -C "${{github.workspace}}/build" --verbose + DragonflyBSD: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: vmactions/dragonflybsd-vm@v1 + with: + prepare: | + pkg install -y ninja meson pkgconf + run: | + meson setup "${{github.workspace}}/build" -Dwarning_level=3 -Dbuildtype=debug + meson compile -C "${{github.workspace}}/build" --verbose + meson test -C "${{github.workspace}}/build" --verbose + FreeBSD: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: vmactions/freebsd-vm@v1 + with: + prepare: | + pkg install -y ninja meson pkgconf + run: | + meson setup "${{github.workspace}}/build" -Dwarning_level=3 -Dbuildtype=debug + meson compile -C "${{github.workspace}}/build" --verbose + meson test -C "${{github.workspace}}/build" --verbose + NetBSD: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: vmactions/netbsd-vm@v1 + with: + prepare: | + /usr/sbin/pkg_add meson pkgconf + run: | + meson setup "${{github.workspace}}/build" -Dwarning_level=3 -Dbuildtype=debug + meson compile -C "${{github.workspace}}/build" --verbose + meson test -C "${{github.workspace}}/build" --verbose + OmniOS: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: vmactions/omnios-vm@v1 + with: + prepare: | + pkg install gcc14 meson-313 ninja pkg-config python-313 + run: | + /usr/lib/python3.13/bin/meson setup "${{github.workspace}}/build" -Dwarning_level=3 -Dbuildtype=debug + /usr/lib/python3.13/bin/meson compile -C "${{github.workspace}}/build" --verbose + /usr/lib/python3.13/bin/meson test -C "${{github.workspace}}/build" --verbose + OpenBSD: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: vmactions/openbsd-vm@v1 + with: + prepare: | + pkg_add ninja meson pkgconf + run: | + meson setup "${{github.workspace}}/build" -Dwarning_level=3 -Dbuildtype=debug + meson compile -C "${{github.workspace}}/build" --verbose + meson test -C "${{github.workspace}}/build" --verbose + Alpine: + runs-on: ubuntu-latest + strategy: + matrix: + platform: ['x86_64', 'x86', 'armhf', 'armv7', 'aarch64', 'ppc64le', 'riscv64', 's390x'] + defaults: + run: + shell: alpine.sh {0} + steps: + - uses: actions/checkout@v4 + - uses: jirutka/setup-alpine@v1 + with: + branch: edge + arch: ${{matrix.platform}} + packages: > + build-base pkgconf meson samurai + - name: Compile and Test + run: | + meson setup "${{github.workspace}}/build" -Dwarning_level=3 -Dbuildtype=debug + meson compile -C "${{github.workspace}}/build" --verbose + meson test -C "${{github.workspace}}/build" --verbose -- 2.47.3