mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2025-07-20 08:15:46 +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 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
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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* \
|
||||||
|
|
|
@ -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
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
|
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
|
||||||
|
|
||||||
|
|
11
.github/workflows/trigger_release.yml
vendored
11
.github/workflows/trigger_release.yml
vendored
|
@ -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
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue