github: add windows/msys CI build
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index b414314..e3ea9e1 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -8,6 +8,12 @@
branches:
- main
+# ensure that the workflow is only triggered once per PR, subsequent pushes to the PR will cancel
+# and restart the workflow. See https://docs.github.com/en/actions/using-jobs/using-concurrency
+concurrency:
+ group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
+ cancel-in-progress: true
+
jobs:
build-make:
runs-on: ubuntu-latest
@@ -63,3 +69,45 @@
- name: Run check
run: if ! meson test -C build; then cat build/meson-logs/testlog.txt; false; fi
+
+ build-windows:
+ runs-on: windows-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ include:
+ - { sys: mingw32 }
+ - { sys: mingw64 }
+ - { sys: ucrt64 }
+ - { sys: clang64 }
+ name: ${{ matrix.sys }}
+ defaults:
+ run:
+ shell: msys2 {0}
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+
+ - name: Setup MSYS2
+ uses: msys2/setup-msys2@v2
+ with:
+ msystem: ${{matrix.sys}}
+ update: true
+ install: >-
+ git
+ flex
+ bison
+ pacboy: >-
+ toolchain:p
+ meson:p
+ ninja:p
+ libyaml:p
+ swig:p
+ python-setuptools-scm:p
+
+ - name: '🚧 Build'
+ run: |
+ meson setup -Dtools=true -Dtests=false build
+ meson compile -C build