Updated CI for GH Actions Builds
Some checks failed
eden-build / source (push) Successful in 3m45s
eden-build / android (push) Successful in 23m37s
eden-build / linux (push) Successful in 20m43s
eden-build / windows (msvc) (push) Failing after 15m29s

Signed-off-by: crueter <swurl@swurl.xyz>
This commit is contained in:
crueter 2025-06-28 22:11:38 -04:00
parent 726e1e756d
commit a1087ddec8
No known key found for this signature in database
GPG key ID: A5A7629F109C8FD1
9 changed files with 166 additions and 51 deletions

View file

@ -16,8 +16,6 @@ chmod +x ./gradlew
./gradlew assembleRelease ./gradlew assembleRelease
./gradlew bundleRelease ./gradlew bundleRelease
ccache -s -v
if [ ! -z "${ANDROID_KEYSTORE_B64}" ]; then if [ ! -z "${ANDROID_KEYSTORE_B64}" ]; then
rm "${ANDROID_KEYSTORE_FILE}" rm "${ANDROID_KEYSTORE_FILE}"
fi fi

View file

@ -1,36 +1,53 @@
#!/bin/bash -ex #!/bin/bash -e
# SPDX-FileCopyrightText: 2025 eden Emulator Project # SPDX-FileCopyrightText: 2025 eden Emulator Project
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
export ARCH="$(uname -m)" export ARCH="$(uname -m)"
if [ "$ARCH" = 'x86_64' ]; then case "$1" in
if [ "$1" = 'v3' ]; then amd64|"")
echo "Making x86-64-v3 optimized build of eden" echo "Making amd64-v3 optimized build of Eden"
ARCH="${ARCH}_v3" ARCH="amd64_v3"
ARCH_FLAGS="-march=x86-64-v3 -O3" ARCH_FLAGS="-march=x86-64-v3"
else ;;
echo "Making x86-64 generic build of eden" steamdeck)
ARCH_FLAGS="-march=x86-64 -mtune=generic -O3" echo "Making Steam Deck (Zen 2) optimized build of Eden"
fi ARCH="steamdeck"
ARCH_FLAGS="-march=znver2 -mtune=znver2"
;;
rog-ally|allyx)
echo "Making ROG Ally X (Zen 4) optimized build of Eden"
ARCH="rog-ally-x"
ARCH_FLAGS="-march=znver3 -mtune=znver4" # GH actions runner is a Zen 3 CPU, so a small workaround
;;
legacy)
echo "Making amd64 generic build of Eden"
ARCH=amd64
ARCH_FLAGS="-march=x86-64 -mtune=generic"
;;
aarch64)
echo "Making armv8-a build of Eden"
ARCH=aarch64
ARCH_FLAGS="-march=armv8-a -mtune=generic -w"
;;
armv9)
echo "Making armv9-a build of Eden"
ARCH=armv9
ARCH_FLAGS="-march=armv9-a -mtune=generic -w"
;;
esac
if [ "$1" != '' ]; then export ARCH_FLAGS="$ARCH_FLAGS -O3"
shift
fi
else
echo "Making aarch64 build of eden"
ARCH_FLAGS="-march=armv8-a -mtune=generic -O3"
fi
NPROC="$2"
NPROC="$1"
if [ -z "$NPROC" ]; then if [ -z "$NPROC" ]; then
NPROC="$(nproc)" NPROC="$(nproc)"
else else
shift shift
fi fi
if [ "$1" != "" ]; then shift; fi
if [ "$TARGET" = "appimage" ]; then if [ "$TARGET" = "appimage" ]; then
export EXTRA_CMAKE_FLAGS=(-DCMAKE_INSTALL_PREFIX=/usr -DYUZU_ROOM=ON -DYUZU_ROOM_STANDALONE=OFF -DYUZU_CMD=OFF) export EXTRA_CMAKE_FLAGS=(-DCMAKE_INSTALL_PREFIX=/usr -DYUZU_ROOM=ON -DYUZU_ROOM_STANDALONE=OFF -DYUZU_CMD=OFF)

View file

@ -1,4 +1,4 @@
#!/bin/sh -ex #!/bin/sh -e
# SPDX-FileCopyrightText: 2025 eden Emulator Project # SPDX-FileCopyrightText: 2025 eden Emulator Project
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
@ -7,18 +7,38 @@
export APPIMAGE_EXTRACT_AND_RUN=1 export APPIMAGE_EXTRACT_AND_RUN=1
export BASE_ARCH="$(uname -m)" export BASE_ARCH="$(uname -m)"
export ARCH="$BASE_ARCH"
export BUILDDIR="$2"
SHARUN="https://github.com/VHSgunzo/sharun/releases/latest/download/sharun-${BASE_ARCH}-aio" SHARUN="https://github.com/VHSgunzo/sharun/releases/latest/download/sharun-${BASE_ARCH}-aio"
URUNTIME="https://github.com/VHSgunzo/uruntime/releases/latest/download/uruntime-appimage-dwarfs-${BASE_ARCH}" URUNTIME="https://github.com/VHSgunzo/uruntime/releases/latest/download/uruntime-appimage-dwarfs-${BASE_ARCH}"
if [ "$ARCH" = 'x86_64' ]; then case "$1" in
if [ "$1" = 'v3' ]; then amd64|"")
ARCH="${ARCH}_v3" echo "Packaging amd64-v3 optimized build of Eden"
fi ARCH="amd64_v3"
fi ;;
steamdeck)
echo "Packaging Steam Deck (Zen 2) optimized build of Eden"
ARCH="steamdeck"
;;
rog-ally|allyx)
echo "Packaging ROG Ally X (Zen 4) optimized build of Eden"
ARCH="rog-ally-x"
;;
legacy)
echo "Packaging amd64 generic build of Eden"
ARCH=amd64
;;
aarch64)
echo "Packaging armv8-a build of Eden"
ARCH=aarch64
;;
armv9)
echo "Packaging armv9-a build of Eden"
ARCH=armv9
;;
esac
export BUILDDIR="$2"
if [ "$BUILDDIR" = '' ] if [ "$BUILDDIR" = '' ]
then then
@ -26,7 +46,7 @@ then
fi fi
EDEN_TAG=$(git describe --tags --abbrev=0) EDEN_TAG=$(git describe --tags --abbrev=0)
echo "Making stable \"$EDEN_TAG\" build" echo "Making \"$EDEN_TAG\" build"
# git checkout "$EDEN_TAG" # git checkout "$EDEN_TAG"
VERSION="$(echo "$EDEN_TAG")" VERSION="$(echo "$EDEN_TAG")"
@ -39,14 +59,13 @@ cp ../dist/org.eden_emu.eden.svg .
ln -sf ./org.eden_emu.eden.svg ./.DirIcon ln -sf ./org.eden_emu.eden.svg ./.DirIcon
# TODO(crueter): Nightly UPINFO='gh-releases-zsync|eden-emulator|Releases|latest|*.AppImage.zsync'
if [ "$DEVEL" = 'true' ]; then if [ "$DEVEL" = 'true' ]; then
sed -i 's|Name=Eden|Name=Eden Nightly|' ./org.eden_emu.eden.desktop sed -i 's|Name=Eden|Name=Eden Nightly|' ./org.eden_emu.eden.desktop
UPINFO="$(echo "$UPINFO" | sed 's|latest|nightly|')" UPINFO="$(echo "$UPINFO" | sed 's|Releases|nightly|')"
fi fi
UPINFO='gh-releases-zsync|eden-emulator|Releases|latest|*.AppImage.zsync'
LIBDIR="/usr/lib" LIBDIR="/usr/lib"
# Workaround for Gentoo # Workaround for Gentoo
@ -68,7 +87,7 @@ chmod +x ./sharun-aio
xvfb-run -a ./sharun-aio l -p -v -e -s -k \ xvfb-run -a ./sharun-aio l -p -v -e -s -k \
../$BUILDDIR/bin/eden* \ ../$BUILDDIR/bin/eden* \
$LIBDIR/lib*GL*.so* \ $LIBDIR/lib*GL*.so* \
$LIBDIR/libSDL2*.so* \ $LIBDIR/libSDL2*.so* \
$LIBDIR/dri/* \ $LIBDIR/dri/* \
$LIBDIR/vdpau/* \ $LIBDIR/vdpau/* \
$LIBDIR/libvulkan* \ $LIBDIR/libvulkan* \

View file

@ -18,6 +18,7 @@ CALL cmake -S . -B build\%chain% ^
-DYUZU_USE_BUNDLED_VCPKG=ON ^ -DYUZU_USE_BUNDLED_VCPKG=ON ^
-DYUZU_USE_BUNDLED_SDL2=ON ^ -DYUZU_USE_BUNDLED_SDL2=ON ^
-DYUZU_ENABLE_LTO=ON ^ -DYUZU_ENABLE_LTO=ON ^
-DUSE_CCACHE=ON ^
-G "Ninja" ^ -G "Ninja" ^
-DYUZU_TESTS=OFF -DYUZU_TESTS=OFF

27
.ci/windows/build-arm64.bat Executable file
View file

@ -0,0 +1,27 @@
@echo off
REM TODO: make this a shell script...
set chain=%1
if not defined DevEnvDir (
CALL "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" %chain%
)
CALL mkdir build
CALL cmake -S . -B build\%chain% ^
-DCMAKE_BUILD_TYPE=Release ^
-DENABLE_QT_TRANSLATION=ON ^
-DUSE_DISCORD_PRESENCE=ON ^
-DYUZU_USE_BUNDLED_QT=ON ^
-DYUZU_USE_QT_MULTIMEDIA=ON ^
-DYUZU_USE_QT_WEB_ENGINE=ON ^
-DYUZU_USE_BUNDLED_VCPKG=ON ^
-DYUZU_USE_BUNDLED_SDL2=OFF ^
-DYUZU_USE_EXTERNAL_SDL2=ON ^
-DYUZU_ENABLE_LTO=ON ^
-G "Ninja" ^
-DYUZU_TESTS=OFF
CALL cmake --build build\%chain%

41
.ci/windows/build.sh Normal file
View file

@ -0,0 +1,41 @@
#!/bin/bash -e
# SPDX-FileCopyrightText: 2025 eden Emulator Project
# SPDX-License-Identifier: GPL-3.0-or-later
if [ "$DEVEL" != "true" ]; then
export EXTRA_CMAKE_FLAGS=("${EXTRA_CMAKE_FLAGS[@]}" -DENABLE_QT_UPDATE_CHECKER=ON)
fi
if [ "$CCACHE" = "true" ]; then
export EXTRA_CMAKE_FLAGS=("${EXTRA_CMAKE_FLAGS[@]}" -DUSE_CCACHE=ON)
fi
if [ "$BUNDLE_QT" = "true" ]; then
export EXTRA_CMAKE_FLAGS=("${EXTRA_CMAKE_FLAGS[@]}" -DYUZU_USE_BUNDLED_QT=ON)
else
export EXTRA_CMAKE_FLAGS=("${EXTRA_CMAKE_FLAGS[@]}" -DYUZU_USE_BUNDLED_QT=OFF)
fi
export EXTRA_CMAKE_FLAGS=("${EXTRA_CMAKE_FLAGS[@]}" $@)
mkdir -p build && cd build
cmake .. -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DENABLE_QT_TRANSLATION=ON \
-DUSE_DISCORD_PRESENCE=ON \
-DYUZU_USE_BUNDLED_SDL2=OFF \
-DYUZU_USE_EXTERNAL_SDL2=ON \
-DYUZU_TESTS=OFF \
-DYUZU_CMD=OFF \
-DYUZU_ROOM_STANDALONE=OFF \
-DYUZU_USE_QT_MULTIMEDIA=ON \
-DYUZU_USE_QT_WEB_ENGINE=ON \
-DYUZU_ENABLE_LTO=ON \
"${EXTRA_CMAKE_FLAGS[@]}"
ninja
windeployqt6 --release --no-compiler-runtime --no-opengl-sw --no-system-dxc-compiler --no-system-d3d-compiler --dir pkg bin/eden.exe
find pkg -type f -name "*.pdb" -exec rm -fv {} +

13
.ci/windows/package.sh Normal file
View file

@ -0,0 +1,13 @@
GITDATE=$(git show -s --date=short --format='%ad' | tr -d "-")
GITREV=$(git show -s --format='%h')
ZIP_NAME="Eden-Windows-${ARCH}-${GITDATE}-${GITREV}.zip"
mkdir -p artifacts
mkdir -p pack
cp -r build/pkg/* pack
cp LICENSE* README* pack/
7z a -tzip artifacts/$ZIP_NAME pack/*

View file

@ -69,13 +69,14 @@ jobs:
run: ./.ci/windows/cygwin.bat run: ./.ci/windows/cygwin.bat
- name: Configure & Build - name: Configure & Build
id: cmake shell: bash
shell: cmd run: DEVEL=true ./.ci/windows/build.sh
run: ./.ci/windows/build-bqt.bat amd64 yes
- name: Package artifacts - name: Package artifacts
shell: powershell shell: bash
run: ./.ci/windows/package.ps1 amd64 yes run: |
export PATH="${PATH}:/c/Qt/6.9.0/msvc2022_64/bin"
./.ci/windows/package.sh
- name: Upload Windows artifacts - name: Upload Windows artifacts
uses: forgejo/upload-artifact@v4 uses: forgejo/upload-artifact@v4
@ -100,10 +101,10 @@ jobs:
fetch-tags: true fetch-tags: true
- name: Build - name: Build
run: TARGET=appimage DEVEL=true ./.ci/linux/build.sh v3 8 run: TARGET=appimage DEVEL=true ./.ci/linux/build.sh
- name: Package AppImage - name: Package AppImage
run: DEVEL=true ./.ci/linux/package.sh v3 &> /dev/null run: DEVEL=true ./.ci/linux/package.sh &> /dev/null
- name: Upload Linux artifacts - name: Upload Linux artifacts
uses: forgejo/upload-artifact@v4 uses: forgejo/upload-artifact@v4
@ -116,9 +117,6 @@ jobs:
runs-on: android runs-on: android
env: env:
CCACHE_DIR: /home/runner/.cache/ccache
CCACHE_COMPILERCHECK: content
CCACHE_SLOPPINESS: time_macros
OS: android OS: android
TARGET: universal TARGET: universal

View file

@ -64,13 +64,14 @@ jobs:
run: ./.ci/windows/cygwin.bat run: ./.ci/windows/cygwin.bat
- name: Configure & Build - name: Configure & Build
id: cmake shell: bash
shell: cmd run: DEVEL=false ./.ci/windows/build.sh
run: ./.ci/windows/build-bqt.bat amd64 no
- name: Package artifacts - name: Package artifacts
shell: powershell shell: bash
run: ./.ci/windows/package.ps1 amd64 no run: |
export PATH="${PATH}:/c/Qt/6.9.0/msvc2022_64/bin"
./.ci/windows/package.sh
- name: Upload Windows artifacts - name: Upload Windows artifacts
uses: forgejo/upload-artifact@v4 uses: forgejo/upload-artifact@v4