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.bixed.xyz/Bix/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 cf 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: Get Variables and Clone uses: ./.github/workflows/clone - name: Build shell: bash run: | cd eden if [ "${{ matrix.arch }}" = 'aarch64' ] || [ "${{ matrix.arch }}" = 'armv9' ]; then sed -i 's/Settings::values\.lru_cache_enabled\.GetValue()/true/' src/core/arm/nce/patcher.h fi TARGET=appimage DEVEL=true ./.ci/linux/build.sh ${{ matrix.arch }} $(nproc) - name: Package shell: bash run: | cd eden DEVEL=true ./.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 qtwebengine qtpositioning qtwebchannel # - 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: 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 DEVEL=true 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/*