mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2025-07-20 00:05:47 +00:00
Updated CI for GH Actions Builds
Signed-off-by: crueter <swurl@swurl.xyz>
This commit is contained in:
parent
726e1e756d
commit
a1087ddec8
9 changed files with 166 additions and 51 deletions
|
@ -16,8 +16,6 @@ chmod +x ./gradlew
|
|||
./gradlew assembleRelease
|
||||
./gradlew bundleRelease
|
||||
|
||||
ccache -s -v
|
||||
|
||||
if [ ! -z "${ANDROID_KEYSTORE_B64}" ]; then
|
||||
rm "${ANDROID_KEYSTORE_FILE}"
|
||||
fi
|
||||
|
|
|
@ -1,36 +1,53 @@
|
|||
#!/bin/bash -ex
|
||||
#!/bin/bash -e
|
||||
|
||||
# SPDX-FileCopyrightText: 2025 eden Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
export ARCH="$(uname -m)"
|
||||
|
||||
if [ "$ARCH" = 'x86_64' ]; then
|
||||
if [ "$1" = 'v3' ]; then
|
||||
echo "Making x86-64-v3 optimized build of eden"
|
||||
ARCH="${ARCH}_v3"
|
||||
ARCH_FLAGS="-march=x86-64-v3 -O3"
|
||||
else
|
||||
echo "Making x86-64 generic build of eden"
|
||||
ARCH_FLAGS="-march=x86-64 -mtune=generic -O3"
|
||||
fi
|
||||
case "$1" in
|
||||
amd64|"")
|
||||
echo "Making amd64-v3 optimized build of Eden"
|
||||
ARCH="amd64_v3"
|
||||
ARCH_FLAGS="-march=x86-64-v3"
|
||||
;;
|
||||
steamdeck)
|
||||
echo "Making Steam Deck (Zen 2) optimized build of Eden"
|
||||
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
|
||||
shift
|
||||
fi
|
||||
else
|
||||
echo "Making aarch64 build of eden"
|
||||
ARCH_FLAGS="-march=armv8-a -mtune=generic -O3"
|
||||
fi
|
||||
export ARCH_FLAGS="$ARCH_FLAGS -O3"
|
||||
|
||||
|
||||
NPROC="$1"
|
||||
NPROC="$2"
|
||||
if [ -z "$NPROC" ]; then
|
||||
NPROC="$(nproc)"
|
||||
else
|
||||
shift
|
||||
fi
|
||||
|
||||
if [ "$1" != "" ]; then shift; fi
|
||||
|
||||
if [ "$TARGET" = "appimage" ]; then
|
||||
export EXTRA_CMAKE_FLAGS=(-DCMAKE_INSTALL_PREFIX=/usr -DYUZU_ROOM=ON -DYUZU_ROOM_STANDALONE=OFF -DYUZU_CMD=OFF)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/bin/sh -ex
|
||||
#!/bin/sh -e
|
||||
|
||||
# SPDX-FileCopyrightText: 2025 eden Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
@ -7,18 +7,38 @@
|
|||
|
||||
export APPIMAGE_EXTRACT_AND_RUN=1
|
||||
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"
|
||||
URUNTIME="https://github.com/VHSgunzo/uruntime/releases/latest/download/uruntime-appimage-dwarfs-${BASE_ARCH}"
|
||||
|
||||
if [ "$ARCH" = 'x86_64' ]; then
|
||||
if [ "$1" = 'v3' ]; then
|
||||
ARCH="${ARCH}_v3"
|
||||
fi
|
||||
fi
|
||||
case "$1" in
|
||||
amd64|"")
|
||||
echo "Packaging amd64-v3 optimized build of Eden"
|
||||
ARCH="amd64_v3"
|
||||
;;
|
||||
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" = '' ]
|
||||
then
|
||||
|
@ -26,7 +46,7 @@ then
|
|||
fi
|
||||
|
||||
EDEN_TAG=$(git describe --tags --abbrev=0)
|
||||
echo "Making stable \"$EDEN_TAG\" build"
|
||||
echo "Making \"$EDEN_TAG\" build"
|
||||
# git checkout "$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
|
||||
|
||||
# TODO(crueter): Nightly
|
||||
UPINFO='gh-releases-zsync|eden-emulator|Releases|latest|*.AppImage.zsync'
|
||||
|
||||
if [ "$DEVEL" = 'true' ]; then
|
||||
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
|
||||
|
||||
UPINFO='gh-releases-zsync|eden-emulator|Releases|latest|*.AppImage.zsync'
|
||||
|
||||
LIBDIR="/usr/lib"
|
||||
|
||||
# Workaround for Gentoo
|
||||
|
@ -68,7 +87,7 @@ chmod +x ./sharun-aio
|
|||
xvfb-run -a ./sharun-aio l -p -v -e -s -k \
|
||||
../$BUILDDIR/bin/eden* \
|
||||
$LIBDIR/lib*GL*.so* \
|
||||
$LIBDIR/libSDL2*.so* \
|
||||
$LIBDIR/libSDL2*.so* \
|
||||
$LIBDIR/dri/* \
|
||||
$LIBDIR/vdpau/* \
|
||||
$LIBDIR/libvulkan* \
|
||||
|
|
|
@ -18,6 +18,7 @@ CALL cmake -S . -B build\%chain% ^
|
|||
-DYUZU_USE_BUNDLED_VCPKG=ON ^
|
||||
-DYUZU_USE_BUNDLED_SDL2=ON ^
|
||||
-DYUZU_ENABLE_LTO=ON ^
|
||||
-DUSE_CCACHE=ON ^
|
||||
-G "Ninja" ^
|
||||
-DYUZU_TESTS=OFF
|
||||
|
27
.ci/windows/build-arm64.bat
Executable file
27
.ci/windows/build-arm64.bat
Executable 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
41
.ci/windows/build.sh
Normal 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
13
.ci/windows/package.sh
Normal 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/*
|
18
.github/workflows/build.yml
vendored
18
.github/workflows/build.yml
vendored
|
@ -69,13 +69,14 @@ jobs:
|
|||
run: ./.ci/windows/cygwin.bat
|
||||
|
||||
- name: Configure & Build
|
||||
id: cmake
|
||||
shell: cmd
|
||||
run: ./.ci/windows/build-bqt.bat amd64 yes
|
||||
shell: bash
|
||||
run: DEVEL=true ./.ci/windows/build.sh
|
||||
|
||||
- name: Package artifacts
|
||||
shell: powershell
|
||||
run: ./.ci/windows/package.ps1 amd64 yes
|
||||
shell: bash
|
||||
run: |
|
||||
export PATH="${PATH}:/c/Qt/6.9.0/msvc2022_64/bin"
|
||||
./.ci/windows/package.sh
|
||||
|
||||
- name: Upload Windows artifacts
|
||||
uses: forgejo/upload-artifact@v4
|
||||
|
@ -100,10 +101,10 @@ jobs:
|
|||
fetch-tags: true
|
||||
|
||||
- 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
|
||||
run: DEVEL=true ./.ci/linux/package.sh v3 &> /dev/null
|
||||
run: DEVEL=true ./.ci/linux/package.sh &> /dev/null
|
||||
|
||||
- name: Upload Linux artifacts
|
||||
uses: forgejo/upload-artifact@v4
|
||||
|
@ -116,9 +117,6 @@ jobs:
|
|||
runs-on: android
|
||||
|
||||
env:
|
||||
CCACHE_DIR: /home/runner/.cache/ccache
|
||||
CCACHE_COMPILERCHECK: content
|
||||
CCACHE_SLOPPINESS: time_macros
|
||||
OS: android
|
||||
TARGET: universal
|
||||
|
||||
|
|
11
.github/workflows/trigger_release.yml
vendored
11
.github/workflows/trigger_release.yml
vendored
|
@ -64,13 +64,14 @@ jobs:
|
|||
run: ./.ci/windows/cygwin.bat
|
||||
|
||||
- name: Configure & Build
|
||||
id: cmake
|
||||
shell: cmd
|
||||
run: ./.ci/windows/build-bqt.bat amd64 no
|
||||
shell: bash
|
||||
run: DEVEL=false ./.ci/windows/build.sh
|
||||
|
||||
- name: Package artifacts
|
||||
shell: powershell
|
||||
run: ./.ci/windows/package.ps1 amd64 no
|
||||
shell: bash
|
||||
run: |
|
||||
export PATH="${PATH}:/c/Qt/6.9.0/msvc2022_64/bin"
|
||||
./.ci/windows/package.sh
|
||||
|
||||
- name: Upload Windows artifacts
|
||||
uses: forgejo/upload-artifact@v4
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue