ci: Split AppImage build into two, with and without Wayland support

This commit is contained in:
OpenSauce04 2025-12-05 13:28:08 +00:00 committed by OpenSauce
parent 356aa3d3ae
commit 05562046ac
2 changed files with 14 additions and 8 deletions

View File

@ -1,14 +1,16 @@
#!/bin/bash -ex
if [ "$TARGET" = "appimage" ]; then
if [[ "$TARGET" == "appimage"* ]]; then
# Compile the AppImage we distribute with Clang.
export EXTRA_CMAKE_FLAGS=(-DCMAKE_CXX_COMPILER=clang++
-DCMAKE_C_COMPILER=clang
-DCMAKE_LINKER=/etc/bin/ld.lld
-DENABLE_ROOM_STANDALONE=OFF)
# Bundle required QT wayland libraries
export EXTRA_QT_PLUGINS="waylandcompositor"
export EXTRA_PLATFORM_PLUGINS="libqwayland-egl.so;libqwayland-generic.so"
if [ "$TARGET" = "appimage-wayland" ]; then
# Bundle required QT wayland libraries
export EXTRA_QT_PLUGINS="waylandcompositor"
export EXTRA_PLATFORM_PLUGINS="libqwayland-egl.so;libqwayland-generic.so"
fi
else
# For the linux-fresh verification target, verify compilation without PCH as well.
export EXTRA_CMAKE_FLAGS=(-DCITRA_USE_PRECOMPILED_HEADERS=OFF)
@ -30,7 +32,7 @@ cmake .. -G Ninja \
ninja
strip -s bin/Release/*
if [ "$TARGET" = "appimage" ]; then
if [[ "$TARGET" == "appimage"* ]]; then
ninja bundle
# TODO: Our AppImage environment currently uses an older ccache version without the verbose flag.
ccache -s

View File

@ -28,7 +28,7 @@ jobs:
strategy:
fail-fast: false
matrix:
target: ["appimage", "fresh"]
target: ["appimage", "appimage-wayland", "fresh"]
container:
image: opensauce04/azahar-build-environment:latest
options: -u 1001
@ -52,12 +52,16 @@ jobs:
- name: Build
run: ./.ci/linux.sh
- name: Move AppImage to artifacts directory
if: ${{ matrix.target == 'appimage' }}
if: ${{ contains(matrix.target, 'appimage') }}
run: |
mkdir -p artifacts
mv build/bundle/*.AppImage artifacts/
- name: Rename AppImage
if: ${{ matrix.target == 'appimage-wayland' }}
run: |
mv artifacts/azahar.AppImage artifacts/azahar-wayland.AppImage
- name: Upload
if: ${{ matrix.target == 'appimage' }}
if: ${{ contains(matrix.target, 'appimage') }}
uses: actions/upload-artifact@v4
with:
name: ${{ env.OS }}-${{ env.TARGET }}