230 lines
5.6 KiB
YAML
230 lines
5.6 KiB
YAML
name: Release Build
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
workflow_call:
|
|
|
|
jobs:
|
|
source:
|
|
name: "Source Pack"
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Get Variables
|
|
uses: ./.github/workflows/parse
|
|
|
|
- name: Checkout Repo
|
|
shell: bash
|
|
run: |
|
|
while ! git clone https://git.eden-emu.dev/eden-emu/eden.git eden; do
|
|
echo "Clone failed!"
|
|
sleep 5
|
|
echo "Trying clone again..."
|
|
rm -rf ./eden || true
|
|
done
|
|
|
|
cd eden
|
|
git reset --hard $FORGEJO_TAG
|
|
|
|
- name: Pack
|
|
run: |
|
|
zip -r source.zip eden
|
|
tar czf source.tar.zst eden
|
|
|
|
- name: Upload source
|
|
uses: actions/upload-artifact@v4.6.2
|
|
with:
|
|
name: source
|
|
path: source.*
|
|
|
|
linux:
|
|
name: "Linux (${{ matrix.arch }})"
|
|
runs-on: ${{ matrix.runs-on }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- runs-on: ubuntu-latest
|
|
arch: legacy
|
|
|
|
- runs-on: ubuntu-latest
|
|
arch: amd64
|
|
|
|
- runs-on: ubuntu-latest
|
|
arch: steamdeck
|
|
|
|
- runs-on: ubuntu-latest
|
|
arch: rog-ally
|
|
|
|
- runs-on: ubuntu-24.04-arm
|
|
arch: aarch64
|
|
|
|
- runs-on: ubuntu-24.04-arm
|
|
arch: armv9
|
|
|
|
container: ghcr.io/pkgforge-dev/archlinux:latest
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
chmod +x ./linux/get-dependencies.sh
|
|
./linux/get-dependencies.sh
|
|
|
|
- name: Set build variables
|
|
shell: bash
|
|
run: |
|
|
echo "BUILD_TYPE=Release" >> $GITHUB_ENV
|
|
echo "DEVEL=true" >> $GITHUB_ENV
|
|
echo "USE_WEBENGINE=false" >> $GITHUB_ENV
|
|
echo "USE_MULTIMEDIA=true" >> $GITHUB_ENV
|
|
|
|
- name: Get Variables and Clone
|
|
uses: ./.github/workflows/clone
|
|
|
|
- name: Build
|
|
shell: bash
|
|
run: |
|
|
cd eden
|
|
|
|
TARGET=appimage ./.ci/linux/build.sh ${{ matrix.arch }} $(nproc)
|
|
|
|
- name: Package
|
|
shell: bash
|
|
run: |
|
|
cd eden
|
|
./.ci/linux/package.sh ${{ matrix.arch }}
|
|
|
|
- name: Upload artifacts
|
|
uses: actions/upload-artifact@v4.6.2
|
|
with:
|
|
name: linux-${{ matrix.arch }}
|
|
path: eden/*.AppImage*
|
|
|
|
windows:
|
|
name: "Windows (${{ matrix.arch }})"
|
|
runs-on: ${{ matrix.runs-on }}
|
|
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- runs-on: windows-latest
|
|
arch: amd64
|
|
qt_arch: win64_msvc2022_64
|
|
qt_version: 6.9.1
|
|
qt_modules: qtmultimedia qt5compat
|
|
|
|
# - runs-on: windows-11-arm
|
|
# arch: arm64
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Install Qt
|
|
uses: jurplel/install-qt-action@v4
|
|
with:
|
|
version: ${{ matrix.qt_version }}
|
|
host: 'windows'
|
|
target: 'desktop'
|
|
arch: ${{ matrix.qt_arch }}
|
|
modules: ${{ matrix.qt_modules }}
|
|
cache: 'true'
|
|
|
|
- name: Set build variables
|
|
shell: bash
|
|
run: |
|
|
echo "BUILD_TYPE=Release" >> $GITHUB_ENV
|
|
echo "DEVEL=true" >> $GITHUB_ENV
|
|
echo "USE_WEBENGINE=false" >> $GITHUB_ENV
|
|
echo "USE_MULTIMEDIA=true" >> $GITHUB_ENV
|
|
|
|
- name: Get Variables and Clone
|
|
uses: ./.github/workflows/clone
|
|
|
|
- name: Set up vcpkg cache
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: |
|
|
${{ github.workspace }}/eden/build/vcpkg_installed
|
|
${{ github.workspace }}/eden/build/externals
|
|
${{ github.workspace }}/eden/.vcpkg
|
|
key: ${{ runner.os }}-${{ matrix.arch }}-vcpkg-${{ github.run_id }}
|
|
restore-keys: |
|
|
${{ runner.os }}-${{ matrix.arch }}-vcpkg-
|
|
|
|
- name: Set up MSVC
|
|
uses: ilammy/msvc-dev-cmd@v1
|
|
with:
|
|
arch: ${{ matrix.arch }}
|
|
|
|
- name: Install Vulkan SDK
|
|
shell: powershell
|
|
run: |
|
|
cd eden
|
|
./.ci/windows/install-vulkan-sdk.ps1
|
|
|
|
- name: Build
|
|
shell: bash
|
|
run: |
|
|
cd eden
|
|
export PATH="${PATH}:${{ runner.workspace }}/Qt/${{ matrix.qt_version }}/${{ matrix.qt_arch }}/bin"
|
|
export WINDEPLOYQT=windeployqt
|
|
|
|
./.ci/windows/build.sh
|
|
|
|
- name: Package
|
|
shell: bash
|
|
run: |
|
|
cd eden
|
|
export ARCH=${{ matrix.arch }}
|
|
./.ci/windows/package.sh
|
|
|
|
- name: Upload artifacts
|
|
uses: actions/upload-artifact@v4.6.2
|
|
with:
|
|
name: windows-${{ matrix.arch }}
|
|
path: eden/artifacts/*
|
|
|
|
android:
|
|
runs-on: ubuntu-latest
|
|
name: "Android"
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
chmod +x ./android/get-dependencies.sh
|
|
./android/get-dependencies.sh
|
|
|
|
- name: Get Variables and Clone
|
|
uses: ./.github/workflows/clone
|
|
|
|
- name: Build
|
|
run: |
|
|
cd eden
|
|
JAVA_HOME=$JAVA_HOME_17_X64 DEVEL=true ./.ci/android/build.sh
|
|
env:
|
|
ANDROID_KEYSTORE_B64: ${{ secrets.ANDROID_KEYSTORE_B64 }}
|
|
ANDROID_KEY_ALIAS: ${{ secrets.ANDROID_KEY_ALIAS }}
|
|
ANDROID_KEYSTORE_PASS: ${{ secrets.ANDROID_KEYSTORE_PASS }}
|
|
|
|
- name: Package
|
|
run: |
|
|
cd eden
|
|
./.ci/android/package.sh
|
|
|
|
- name: Upload artifacts
|
|
uses: actions/upload-artifact@v4.6.2
|
|
with:
|
|
name: android
|
|
path: eden/artifacts/*
|