mirror of
https://github.com/Rosalie241/RMG.git
synced 2026-07-11 01:24:01 +02:00
172 lines
6.9 KiB
YAML
172 lines
6.9 KiB
YAML
name: RMG
|
|
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
build-linux:
|
|
strategy:
|
|
matrix:
|
|
include:
|
|
- { os: ubuntu-24.04, features: ON, architecture: x86_64 }
|
|
- { os: ubuntu-24.04, features: OFF, architecture: x86_64 }
|
|
- { os: ubuntu-24.04-arm, features: ON, architecture: aarch64 }
|
|
- { os: ubuntu-24.04-arm, features: OFF, architecture: aarch64 }
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
with:
|
|
fetch-depth: 0
|
|
- uses: hendrikmuhs/ccache-action@v1.2
|
|
with:
|
|
key: linux-${{ matrix.architecture }}-features-${{ matrix.features }}
|
|
- name: Install Packages
|
|
run: |
|
|
# remove and disable snap, this fixes long update times
|
|
# taken from https://github.com/ading2210/gh-actions-remove-snap/blob/main/workflow.sh
|
|
sudo systemctl disable --now snapd
|
|
sudo apt-get purge -y snapd
|
|
echo "Package: snapd" | sudo tee /etc/apt/preferences.d/disable-snap.pref
|
|
echo "Pin: release a=*" | sudo tee -a /etc/apt/preferences.d/disable-snap.pref
|
|
echo "Pin-Priority: -10" | sudo tee -a /etc/apt/preferences.d/disable-snap.pref
|
|
sudo apt-mark hold firefox
|
|
|
|
sudo apt-get -y update
|
|
sudo apt-get -y upgrade
|
|
sudo apt-get -y install cmake libusb-1.0-0-dev libhidapi-dev libsamplerate0-dev libspeex-dev libminizip-dev libfreetype6-dev \
|
|
libgl1-mesa-dev libglu1-mesa-dev pkg-config zlib1g-dev binutils-dev libspeexdsp-dev qt6-base-dev libqt6svg6-dev libqt6websockets6-dev libvulkan-dev \
|
|
build-essential nasm git zip appstream xvfb qt6ct mesa-vulkan-drivers
|
|
|
|
# sdl3 dependencies
|
|
sudo apt-get -y install build-essential git make \
|
|
pkg-config cmake ninja-build gnome-desktop-testing libasound2-dev libpulse-dev \
|
|
libaudio-dev libjack-dev libsndio-dev libx11-dev libxext-dev \
|
|
libxrandr-dev libxcursor-dev libxfixes-dev libxi-dev libxss-dev libxtst-dev \
|
|
libxkbcommon-dev libdrm-dev libgbm-dev libgl1-mesa-dev libgles2-mesa-dev \
|
|
libegl1-mesa-dev libdbus-1-dev libibus-1.0-dev libudev-dev
|
|
- name: Prepare Environment
|
|
run: |
|
|
echo "GIT_REVISION=$(git describe --tags --always)" >> $GITHUB_ENV
|
|
- name: Build SDL3
|
|
run: |
|
|
export sdl_dir="$(pwd)/../SDL3"
|
|
|
|
git clone https://github.com/libsdl-org/SDL.git "$sdl_dir" -b release-3.2.28 --depth=1
|
|
|
|
mkdir -p "$sdl_dir/build"
|
|
cmake -S "$sdl_dir" -B "$sdl_dir/build" \
|
|
-DCMAKE_BUILD_TYPE="Release" \
|
|
-DCMAKE_INSTALL_LIBDIR="lib/${{ matrix.architecture }}-linux-gnu" \
|
|
-DCMAKE_INSTALL_FULL_LIBDIR="/usr/lib/${{ matrix.architecture }}-linux-gnu" \
|
|
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
|
|
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache
|
|
|
|
cmake --build "$sdl_dir/build" --parallel "$(nproc)"
|
|
sudo cmake --install "$sdl_dir/build" --prefix /usr/
|
|
- name: Build RMG (AppImage)
|
|
run: |
|
|
export src_dir="$(pwd)"
|
|
export build_dir="$(pwd)/Build/AppImage"
|
|
export bin_dir="$(pwd)/Bin/AppImage"
|
|
|
|
mkdir $build_dir Bin/ -p
|
|
cmake -S "$src_dir" -B "$build_dir" -DCMAKE_BUILD_TYPE="Release" \
|
|
-DNETPLAY=${{ matrix.features }} \
|
|
-DVRU=${{ matrix.features }} \
|
|
-DUSE_ANGRYLION=${{ matrix.features }} \
|
|
-DUPDATER=${{ matrix.features }} \
|
|
-DAPPIMAGE_UPDATER=${{ matrix.features }} \
|
|
-DPORTABLE_INSTALL=OFF \
|
|
-DCMAKE_INSTALL_PREFIX="/usr" \
|
|
-DCMAKE_INSTALL_LIBDIR="lib" \
|
|
-G "Unix Makefiles"
|
|
|
|
cmake --build "$build_dir" --parallel "$(nproc)"
|
|
cmake --install "$build_dir" --strip --prefix="$bin_dir/usr"
|
|
shell: bash
|
|
- name: Create AppImage
|
|
if: ${{ matrix.features == 'ON' && matrix.architecture == 'x86_64' }}
|
|
run: |
|
|
./Package/AppImage/Create.sh
|
|
shell: bash
|
|
- name: Upload RMG (AppImage)
|
|
if: ${{ matrix.features == 'ON' && matrix.architecture == 'x86_64' }}
|
|
uses: actions/upload-artifact@v5
|
|
with:
|
|
name: RMG-Portable-Linux64-${{ env.GIT_REVISION }}
|
|
path: Bin/*.AppImage
|
|
|
|
build-windows:
|
|
runs-on: windows-2025
|
|
strategy:
|
|
matrix:
|
|
features: [ ON, OFF ]
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
with:
|
|
fetch-depth: 0
|
|
- uses: hendrikmuhs/ccache-action@v1.2
|
|
with:
|
|
key: windows-features-${{ matrix.features }}
|
|
- uses: msys2/setup-msys2@v2
|
|
with:
|
|
path-type: inherit
|
|
update: true
|
|
msystem: ucrt64
|
|
install: >-
|
|
make
|
|
mingw-w64-ucrt-x86_64-cmake
|
|
mingw-w64-ucrt-x86_64-gcc
|
|
mingw-w64-ucrt-x86_64-freetype
|
|
mingw-w64-ucrt-x86_64-libpng
|
|
mingw-w64-ucrt-x86_64-sdl3
|
|
mingw-w64-ucrt-x86_64-qt6
|
|
mingw-w64-ucrt-x86_64-libusb
|
|
mingw-w64-ucrt-x86_64-hidapi
|
|
mingw-w64-ucrt-x86_64-speexdsp
|
|
mingw-w64-ucrt-x86_64-libsamplerate
|
|
mingw-w64-ucrt-x86_64-nasm
|
|
mingw-w64-ucrt-x86_64-minizip
|
|
mingw-w64-ucrt-x86_64-vulkan-headers
|
|
git
|
|
- name: Prepare Environment
|
|
run: |
|
|
$env:revision = git describe --tags --always
|
|
echo "GIT_REVISION=$env:revision" >> $env:GITHUB_ENV
|
|
shell: pwsh
|
|
- name: Build RMG (Portable)
|
|
run: |
|
|
export src_dir="$(pwd)"
|
|
export build_dir="$(pwd)/Build/Release"
|
|
|
|
cmake -S "$src_dir" -B "$build_dir" -DCMAKE_BUILD_TYPE="Release" \
|
|
-DNETPLAY=${{ matrix.features }} \
|
|
-DVRU=${{ matrix.features }} \
|
|
-DUSE_ANGRYLION=${{ matrix.features }} \
|
|
-DUPDATER=${{ matrix.features }} \
|
|
-DPORTABLE_INSTALL=ON \
|
|
-G "MSYS Makefiles"
|
|
|
|
cmake --build "$build_dir" --parallel "$(nproc)"
|
|
cmake --install "$build_dir" --strip --prefix="$src_dir"
|
|
cmake --build "$build_dir" --target=bundle_dependencies
|
|
shell: msys2 {0}
|
|
- name: Create Installer
|
|
if: ${{ matrix.features == 'ON' }}
|
|
run: .\Build\Release\Source\Installer\CreateInstaller.bat
|
|
- name: Configure RMG (Portable)
|
|
if: ${{ matrix.features == 'ON' }}
|
|
run: touch Bin/Release/portable.txt
|
|
shell: msys2 {0}
|
|
- name: Upload RMG (Portable)
|
|
if: ${{ matrix.features == 'ON' }}
|
|
uses: actions/upload-artifact@v5
|
|
with:
|
|
name: RMG-Portable-Windows64-${{ env.GIT_REVISION }}
|
|
path: Bin/Release/*
|
|
- name: Upload RMG (Installer)
|
|
if: ${{ matrix.features == 'ON' }}
|
|
uses: actions/upload-artifact@v5
|
|
with:
|
|
name: RMG-Setup-Windows64-${{ env.GIT_REVISION }}
|
|
path: Bin/*.exe
|