@@ -111,40 +111,32 @@ jobs:
111111 *.tar.gz
112112
113113 build-linux-arm64 :
114- runs-on : ubuntu-latest
114+ runs-on : ubuntu-22.04-arm
115115 steps :
116116 - uses : actions/checkout@v4
117117
118- - name : Set up QEMU
119- uses : docker/setup-qemu-action@v3
120- with :
121- platforms : arm64
118+ - name : Install dependencies
119+ run : |
120+ sudo apt-get update
121+ sudo apt-get install -y build-essential cmake pkg-config \
122+ libgtk-3-dev libwebkit2gtk-4.1-dev libuv1-dev \
123+ dpkg-dev rpm git
124+
125+ - name : Build QuickJS
126+ run : |
127+ git clone https://github.com/bellard/quickjs.git /tmp/quickjs
128+ cd /tmp/quickjs
129+ make libquickjs.a
130+ sudo mkdir -p /usr/lib/quickjs /usr/include/quickjs
131+ sudo cp libquickjs.a /usr/lib/quickjs/
132+ sudo cp quickjs.h quickjs-libc.h /usr/include/quickjs/
122133
123- - name : Build in ARM64 container
134+ - name : Build Valkyrie
124135 run : |
125- docker run --rm --platform linux/arm64 \
126- -v ${{ github.workspace }}:/workspace \
127- -w /workspace \
128- arm64v8/ubuntu:24.04 bash -c "
129- apt-get update
130- apt-get install -y build-essential cmake pkg-config git \
131- libgtk-3-dev libwebkit2gtk-4.1-dev libuv1-dev dpkg-dev rpm
132-
133- # Build QuickJS
134- git clone https://github.com/bellard/quickjs.git /tmp/quickjs
135- cd /tmp/quickjs
136- make libquickjs.a
137- mkdir -p /usr/lib/quickjs /usr/include/quickjs
138- cp libquickjs.a /usr/lib/quickjs/
139- cp quickjs.h quickjs-libc.h /usr/include/quickjs/
140-
141- # Build Valkyrie
142- cd /workspace
143- mkdir -p build && cd build
144- cmake .. -DWEBKIT_VERSION=4.1
145- make -j\$(nproc)
146- strip valkyrie
147- "
136+ mkdir -p build && cd build
137+ cmake .. -DWEBKIT_VERSION=4.1
138+ make -j$(nproc)
139+ strip valkyrie
148140
149141
150142 - name : Create packages
@@ -223,73 +215,6 @@ jobs:
223215 *.pkg.tar.zst
224216 *.tar.gz
225217
226- build-linux-i386 :
227- runs-on : ubuntu-latest
228- steps :
229- - uses : actions/checkout@v4
230-
231- - name : Set up QEMU
232- uses : docker/setup-qemu-action@v3
233- with :
234- platforms : 386
235-
236- - name : Build in i386 container
237- run : |
238- docker run --rm --platform linux/386 \
239- -v ${{ github.workspace }}:/workspace \
240- -w /workspace \
241- i386/ubuntu:24.04 bash -c "
242- apt-get update
243- apt-get install -y build-essential cmake pkg-config git \
244- libgtk-3-dev libwebkit2gtk-4.1-dev libuv1-dev dpkg-dev rpm
245-
246- # Build QuickJS
247- git clone https://github.com/bellard/quickjs.git /tmp/quickjs
248- cd /tmp/quickjs
249- make libquickjs.a
250- mkdir -p /usr/lib/quickjs /usr/include/quickjs
251- cp libquickjs.a /usr/lib/quickjs/
252- cp quickjs.h quickjs-libc.h /usr/include/quickjs/
253-
254- # Build Valkyrie
255- cd /workspace
256- mkdir -p build && cd build
257- cmake .. -DWEBKIT_VERSION=4.1
258- make -j\$(nproc)
259- strip valkyrie
260- "
261-
262- - name : Create packages
263- run : |
264- VERSION=${GITHUB_REF_NAME#v}
265-
266- # DEB
267- mkdir -p valkyrie_${VERSION}_i386/DEBIAN
268- mkdir -p valkyrie_${VERSION}_i386/usr/local/bin
269- cp build/valkyrie valkyrie_${VERSION}_i386/usr/local/bin/
270- cat > valkyrie_${VERSION}_i386/DEBIAN/control << EOF
271- Package: valkyrie
272- Version: ${VERSION}
273- Architecture: i386
274- Maintainer: Kitsuri Studios <studio@kitsuri.dev>
275- Description: Native Desktop Application Framework
276- Depends: libgtk-3-0, libwebkit2gtk-4.0-37, libuv1
277- EOF
278- dpkg-deb --build valkyrie_${VERSION}_i386
279-
280- # Tarball
281- mkdir -p valkyrie-${{ github.ref_name }}-linux-i386
282- cp build/valkyrie README.md LICENSE valkyrie-${{ github.ref_name }}-linux-i386/
283- tar -czvf valkyrie-${{ github.ref_name }}-linux-i386.tar.gz valkyrie-${{ github.ref_name }}-linux-i386
284-
285- - name : Upload artifacts
286- uses : actions/upload-artifact@v4
287- with :
288- name : linux-i386
289- path : |
290- *.deb
291- *.tar.gz
292-
293218 build-windows :
294219 runs-on : ubuntu-latest
295220 strategy :
@@ -345,8 +270,12 @@ jobs:
345270
346271 - name : Build Windows binary
347272 run : |
273+ # Create proper webview include structure
274+ mkdir -p _deps/webview-src/core/include
275+ cp -r webview-repo/core/include/* _deps/webview-src/core/include/
276+
348277 ${{ matrix.mingw }}-g++ -std=c++20 -O2 -o valkyrie.exe src/cli/main.cpp \
349- -I. -Isrc -Iquickjs -Ilibuv/include -Iwebview2 -Iwebview-repo/core/include \
278+ -I. -Isrc -Iquickjs -Ilibuv/include -Iwebview2 -I_deps/webview-src \
350279 -DWEBVIEW_EDGE \
351280 quickjs/libquickjs.win.a libuv/libuv.win.a \
352281 -lole32 -lcomctl32 -loleaut32 -luuid -lgdi32 -lws2_32 \
@@ -482,7 +411,7 @@ jobs:
482411 # *.tar.gz
483412
484413 release :
485- needs : [build-linux-amd64, build-linux-arm64, build-linux-i386, build- windows]
414+ needs : [build-linux-amd64, build-linux-arm64, build-windows]
486415 runs-on : ubuntu-latest
487416 permissions :
488417 contents : write
0 commit comments