8080 apk add --no-cache \
8181 gcc musl-dev meson vala bison pkgconf file \
8282 glib-dev glib-static libxml2-dev libxml2-static zlib-dev zlib-static \
83- pcre2-dev util-linux-dev xz-dev libffi-dev
83+ pcre2-dev pcre2-static util-linux-dev xz-dev xz-static
8484 meson setup builddir --default-library=static --prefer-static
8585 meson compile -C builddir
8686 file builddir/wixl
@@ -97,69 +97,73 @@ jobs:
9797 retention-days : 1
9898
9999 macos :
100- runs-on : macos-latest
100+ runs-on : ${{ matrix.runner }}
101+ strategy :
102+ fail-fast : false
103+ matrix :
104+ include :
105+ - arch : arm64
106+ runner : macos-latest
107+ - arch : x64
108+ runner : macos-15-intel
109+
101110 steps :
102111 - uses : actions/checkout@v4
103112 with :
104113 submodules : recursive
105114
106- - name : Install ARM64 dependencies
115+ - name : Install dependencies
107116 run : |
108117 brew install meson vala bison glib libxml2
109118 echo "$(brew --prefix bison)/bin" >> $GITHUB_PATH
110119
111- - name : Build ARM64
112- run : |
113- meson setup build-arm64 --default-library=static --prefer-static
114- meson compile -C build-arm64
115- file build-arm64/wixl
116- build-arm64/wixl --version
117-
118- - name : Install x86_64 Homebrew and dependencies
120+ - name : Build
119121 run : |
120- arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
121- arch -x86_64 /usr/local/bin/brew install meson vala bison glib libxml2
122+ meson setup builddir --default-library=static --prefer-static
123+ meson compile -C builddir
122124
123- - name : Build x86_64 (via Rosetta)
125+ - name : Verify
124126 run : |
125- arch -x86_64 bash -c '
126- export PATH="/usr/local/bin:/usr/local/opt/bison/bin:$PATH"
127- meson setup build-x64 --default-library=static --prefer-static
128- meson compile -C build-x64
129- file build-x64/wixl
130- build-x64/wixl --version
131- '
127+ file builddir/wixl
128+ builddir/wixl --version
132129
133- - name : Create universal binary
134- run : |
135- lipo -create build-arm64/wixl build-x64/wixl -output wixl-osx-universal
136- chmod +x wixl-osx-universal
137- file wixl-osx-universal
130+ - name : Rename binary
131+ run : cp builddir/wixl wixl-macos-${{ matrix.arch }}
138132
139133 - uses : actions/upload-artifact@v4
140134 with :
141- name : build-osx
142- path : wixl-osx-universal
135+ name : build-macos-${{ matrix.arch }}
136+ path : wixl-macos-${{ matrix.arch }}
143137 retention-days : 1
144138
145139 package :
146- runs-on : ubuntu -latest
140+ runs-on : macos -latest
147141 needs : [windows, linux, macos]
142+ if : always() && !cancelled()
148143 steps :
149144 - uses : actions/download-artifact@v4
150145 with :
151146 pattern : build-*
152147 merge-multiple : true
153148
154- - name : List binaries
155- run : ls -la
149+ - name : Create macOS universal binary
150+ run : |
151+ lipo -create wixl-macos-arm64 wixl-macos-x64 -output wixl-osx-universal
152+ chmod +x wixl-osx-universal
153+ file wixl-osx-universal
154+ rm wixl-macos-arm64 wixl-macos-x64
155+
156+ - name : Prepare release directory
157+ run : |
158+ mkdir release
159+ mv wixl-win-x86.exe release/
160+ mv wixl-win-x64.exe release/
161+ mv wixl-linux-x64 release/
162+ mv wixl-linux-arm64 release/
163+ mv wixl-osx-universal release/
164+ ls -la release/
156165
157166 - uses : actions/upload-artifact@v4
158167 with :
159168 name : wixl
160- path : |
161- wixl-win-x86.exe
162- wixl-win-x64.exe
163- wixl-linux-x64
164- wixl-linux-arm64
165- wixl-osx-universal
169+ path : release/*
0 commit comments