diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index fb54516f..cf4ea19e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -79,6 +79,38 @@ jobs: chmod +x ./publish_gtk/Ryujinx.Gtk3 ./publish_gtk/Ryujinx.sh if: github.event_name == 'pull_request' && matrix.platform.os == 'ubuntu-latest' + - name: Make AppImage + run: | + sudo apt install zsync desktop-file-utils + APPIMAGETOOL="https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage" + DESKTOP="https://raw.githubusercontent.com/ryujinx-mirror/Ryujinx/master/distribution/linux/Ryujinx.desktop" + ICON="https://raw.githubusercontent.com/ryujinx-mirror/Ryujinx/master/src/Ryujinx/Ryujinx.ico" + mkdir -p ./AppDir/usr/bin && cp -r ./publish/* ./AppDir/usr/bin + wget -q "$APPIMAGETOOL" -O ./appimagetool + wget $DESKTOP -O ./AppDir/Ryujinx.desktop + wget $ICON -O ./AppDir/Ryujinx.png && ln -s Ryujinx.png ./AppDir/.DirIcon + printf '%s\n%s\n%s\n' '#!/bin/sh' 'CURRENTDIR="$(readlink -f "$(dirname "$0")")"' \ + 'exec "$CURRENTDIR"/usr/bin/Ryujinx.sh "$@"' > ./AppDir/AppRun + chmod +x ./AppDir/AppRun ./appimagetool ./AppDir/usr/bin/Ryujinx* + ./appimagetool --comp zstd --mksquashfs-opt -Xcompression-level --mksquashfs-opt 21 \ + -u "gh-releases-zsync|$GITHUB_REPOSITORY_OWNER|Ryujinx|latest|*.AppImage.zsync" \ + ./AppDir Ryujinx.AppImage + if: github.event_name == 'pull_request' && matrix.platform.os == 'ubuntu-latest' && matrix.platform.name != 'linux-arm64' + + - name: Upload Ryujinx AppImage + uses: actions/upload-artifact@v4 + with: + name: ryujinx-${{ matrix.configuration }}-${{ env.RYUJINX_BASE_VERSION }}+${{ steps.git_short_hash.outputs.result }}.AppImage + path: Ryujinx.AppImage + if: github.event_name == 'pull_request' && matrix.platform.name != 'linux-arm64' && matrix.platform.os != 'macos-13' + + - name: Upload Ryujinx AppImage zsync + uses: actions/upload-artifact@v4 + with: + name: ryujinx-${{ matrix.configuration }}-${{ env.RYUJINX_BASE_VERSION }}+${{ steps.git_short_hash.outputs.result }}.AppImage.zsync + path: Ryujinx.AppImage.zsync + if: github.event_name == 'pull_request' && matrix.platform.name != 'linux-arm64' && matrix.platform.os != 'macos-13' + - name: Upload Ryujinx artifact uses: actions/upload-artifact@v4 with: