This repository was archived by the owner on May 24, 2026. It is now read-only.
Pain getting the right packages for alpine #12
This file contains hidden or 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: Build | |
| on: | |
| push: | |
| branches: [master, develop] | |
| pull_request: | |
| branches: [master, develop] | |
| workflow_dispatch: | |
| jobs: | |
| windows: | |
| runs-on: windows-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - arch: x86 | |
| msystem: MINGW32 | |
| prefix: mingw-w64-i686 | |
| - arch: x64 | |
| msystem: UCRT64 | |
| prefix: mingw-w64-ucrt-x86_64 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - uses: msys2/setup-msys2@v2 | |
| with: | |
| msystem: ${{ matrix.msystem }} | |
| install: >- | |
| ${{ matrix.prefix }}-gcc | |
| ${{ matrix.prefix }}-meson | |
| ${{ matrix.prefix }}-pkgconf | |
| ${{ matrix.prefix }}-glib2 | |
| ${{ matrix.prefix }}-libxml2 | |
| mingw-w64-ucrt-x86_64-vala | |
| bison | |
| - name: Build | |
| shell: msys2 {0} | |
| run: | | |
| export PATH="/${{ matrix.msystem }}:/ucrt64/bin:$PATH" | |
| export XDG_DATA_DIRS="/ucrt64/share:/${MSYSTEM,,}/share:/usr/share" | |
| meson setup builddir --default-library=static --prefer-static | |
| meson compile -C builddir | |
| - name: Verify | |
| run: builddir\wixl.exe --version | |
| - name: Rename binary | |
| run: copy builddir\wixl.exe wixl-win-${{ matrix.arch }}.exe | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: build-win-${{ matrix.arch }} | |
| path: wixl-win-${{ matrix.arch }}.exe | |
| retention-days: 1 | |
| linux: | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - arch: x64 | |
| runner: ubuntu-latest | |
| - arch: arm64 | |
| runner: ubuntu-24.04-arm | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Build in Alpine | |
| run: | | |
| docker run --rm -v "$PWD":/src -w /src alpine:latest sh -c ' | |
| set -e | |
| apk add --no-cache \ | |
| gcc musl-dev meson vala bison pkgconf file \ | |
| glib-dev glib-static \ | |
| libxml2-dev libxml2-static \ | |
| zlib-dev zlib-static \ | |
| pcre2-dev pcre2-static \ | |
| libffi-dev \ | |
| xz-dev xz-static \ | |
| util-linux-dev util-linux-static \ | |
| libeconf-dev libeconf-static | |
| echo "=== Verifying static libs ===" | |
| ls /usr/lib/libglib-2.0.a /usr/lib/libgio-2.0.a /usr/lib/libgobject-2.0.a /usr/lib/libxml2.a /usr/lib/libz.a /usr/lib/libpcre2-8.a /usr/lib/libffi.a /usr/lib/liblzma.a /usr/lib/libmount.a /usr/lib/libblkid.a | |
| meson setup builddir --default-library=static --prefer-static | |
| meson compile -C builddir | |
| file builddir/wixl | |
| ldd builddir/wixl || echo "statically linked" | |
| builddir/wixl --version | |
| ' | |
| - name: Rename binary | |
| run: cp builddir/wixl wixl-linux-${{ matrix.arch }} | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: build-linux-${{ matrix.arch }} | |
| path: wixl-linux-${{ matrix.arch }} | |
| retention-days: 1 | |
| macos: | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - arch: arm64 | |
| runner: macos-latest | |
| - arch: x64 | |
| runner: macos-15-intel | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Install dependencies | |
| run: | | |
| brew install meson vala bison glib libxml2 | |
| echo "$(brew --prefix bison)/bin" >> $GITHUB_PATH | |
| - name: Build | |
| run: | | |
| meson setup builddir --default-library=static --prefer-static | |
| meson compile -C builddir | |
| - name: Verify | |
| run: | | |
| file builddir/wixl | |
| builddir/wixl --version | |
| - name: Rename binary | |
| run: cp builddir/wixl wixl-macos-${{ matrix.arch }} | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: build-macos-${{ matrix.arch }} | |
| path: wixl-macos-${{ matrix.arch }} | |
| retention-days: 1 | |
| package: | |
| runs-on: macos-latest | |
| needs: [windows, linux, macos] | |
| if: always() && !cancelled() | |
| steps: | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| pattern: build-* | |
| merge-multiple: true | |
| - name: Create macOS universal binary | |
| run: | | |
| lipo -create wixl-macos-arm64 wixl-macos-x64 -output wixl-osx-universal | |
| chmod +x wixl-osx-universal | |
| file wixl-osx-universal | |
| rm wixl-macos-arm64 wixl-macos-x64 | |
| - name: Prepare release directory | |
| run: | | |
| mkdir release | |
| mv wixl-win-x86.exe release/ | |
| mv wixl-win-x64.exe release/ | |
| mv wixl-linux-x64 release/ | |
| mv wixl-linux-arm64 release/ | |
| mv wixl-osx-universal release/ | |
| ls -la release/ | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: wixl | |
| path: release/* |