Skip to content

Commit a02e0ca

Browse files
committed
Bundle required shared libraries in Linux CI pipelines
Add libz, libpng, libzip to Dockerfile.linux Docker build library copy loop. Simplify release.yml to use distrib-stage output (which now auto-bundles all deps via package_linux.sh) instead of manually listing libraries.
1 parent fef0fb0 commit a02e0ca

2 files changed

Lines changed: 26 additions & 50 deletions

File tree

.github/workflows/release.yml

Lines changed: 25 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -270,34 +270,16 @@ jobs:
270270
strip bin/moac
271271
strip bin/libastonia_net.so
272272
273-
- name: Collect Binaries (Linux)
274-
run: |
275-
mkdir -p binaries
276-
cp bin/moac binaries/
277-
cp bin/libastonia_net.so binaries/
278-
cp -L /usr/local/lib/libSDL3.so.0 binaries/ 2>/dev/null || \
279-
cp -L /tmp/sdl3-install/lib/libSDL3.so.0 binaries/ || true
280-
cp -L /usr/local/lib/libSDL3_mixer.so.0 binaries/ 2>/dev/null || \
281-
cp -L /tmp/sdl3-install/lib/libSDL3_mixer.so.0 binaries/ || true
282-
echo "=== Linux Binaries ==="
283-
ls -la binaries/
284-
285-
- name: Upload Binaries (Linux)
286-
uses: actions/upload-artifact@v4
287-
with:
288-
name: linux-binaries
289-
path: binaries/
290-
retention-days: 7
291-
292273
- name: Prepare distribution staging
293274
run: make distrib-stage
294275

295-
- name: Upload distribution staging
276+
- name: Upload Binaries (Linux)
296277
uses: actions/upload-artifact@v4
297278
with:
298-
name: linux-staging
299-
path: distrib/linux_client/
279+
name: linux-binaries
280+
path: distrib/linux_client/bin/
300281
retention-days: 7
282+
overwrite: true
301283

302284
build-windows-release:
303285
needs: build-sdl3-windows
@@ -369,19 +351,13 @@ jobs:
369351
- name: Prepare distribution staging
370352
run: make distrib-stage
371353

372-
- name: Upload distribution staging
373-
uses: actions/upload-artifact@v4
374-
with:
375-
name: windows-staging
376-
path: distrib/windows_client/
377-
retention-days: 7
378-
379354
- name: Upload Binaries (Windows)
380355
uses: actions/upload-artifact@v4
381356
with:
382357
name: windows-binaries
383358
path: distrib/windows_client/bin/
384359
retention-days: 7
360+
overwrite: true
385361

386362
- name: Upload Mod SDK (Windows)
387363
uses: actions/upload-artifact@v4
@@ -598,17 +574,22 @@ jobs:
598574
contents: write
599575

600576
steps:
601-
- name: Download Linux staging
577+
- name: Checkout code
578+
uses: actions/checkout@v6
579+
with:
580+
lfs: true
581+
582+
- name: Download Linux Binaries
602583
uses: actions/download-artifact@v4
603584
with:
604-
name: linux-staging
605-
path: linux_client
585+
name: linux-binaries
586+
path: linux_client/bin
606587

607-
- name: Download Windows staging
588+
- name: Download Windows Binaries
608589
uses: actions/download-artifact@v4
609590
with:
610-
name: windows-staging
611-
path: windows_client
591+
name: windows-binaries
592+
path: windows_client/bin
612593

613594
- name: Download macOS DMG
614595
uses: actions/download-artifact@v4
@@ -627,18 +608,6 @@ jobs:
627608
name: mod-sdk-windows
628609
path: mod-sdk
629610

630-
- name: Download Linux Binaries
631-
uses: actions/download-artifact@v4
632-
with:
633-
name: linux-binaries
634-
path: linux-binaries
635-
636-
- name: Download Windows Binaries
637-
uses: actions/download-artifact@v4
638-
with:
639-
name: windows-binaries
640-
path: windows-binaries
641-
642611
- name: Download macOS Binaries
643612
uses: actions/download-artifact@v4
644613
with:
@@ -651,13 +620,20 @@ jobs:
651620
- name: Rename AppImage to match convention
652621
run: mv astonia-client.AppImage client-linux.AppImage
653622

623+
- name: Assemble full distributions
624+
run: |
625+
cp -r res linux_client/res
626+
cp -r res windows_client/res
627+
cp eula.txt license.txt linux_client/ 2>/dev/null || true
628+
cp eula.txt create_shortcut.bat windows_client/ 2>/dev/null || true
629+
654630
- name: Create distribution archives
655631
run: |
656632
tar czf client-linux.tar.gz linux_client
657633
zip -q -r client-windows.zip windows_client
658634
zip -q -r mod-sdk.zip mod-sdk
659-
tar czf client-linux-binaries.tar.gz -C linux-binaries .
660-
cd windows-binaries && zip -q -r ../client-windows-binaries.zip . && cd ..
635+
tar czf client-linux-binaries.tar.gz -C linux_client/bin .
636+
cd windows_client/bin && zip -q -r ../../client-windows-binaries.zip . && cd ../..
661637
tar czf client-macos-binaries.tar.gz -C macos-binaries .
662638
663639
- name: Generate checksums

build/containers/Dockerfile.linux

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ rm -f build.zig\n\
7373
\n\
7474
# Copy required shared libraries into bin/ for portable deployment\n\
7575
# The binary already has $ORIGIN rpath set, so it will find .so files next to itself\n\
76-
for lib in libSDL3.so libSDL3_mixer.so libmimalloc.so; do\n\
76+
for lib in libSDL3.so libSDL3_mixer.so libmimalloc.so libz.so libpng.so libpng16.so libzip.so; do\n\
7777
for dir in /usr/lib /usr/local/lib; do\n\
7878
if [ -f "$dir/$lib" ]; then\n\
7979
cp -L "$dir/$lib"* /app/bin/ 2>/dev/null || true\n\

0 commit comments

Comments
 (0)