diff --git a/.github/workflows/build-desktop-platforms.yml b/.github/workflows/build-desktop-platforms.yml index ce1df8481..686daa78d 100644 --- a/.github/workflows/build-desktop-platforms.yml +++ b/.github/workflows/build-desktop-platforms.yml @@ -506,9 +506,38 @@ jobs: retention-days: 30 compression-level: 0 + build-flatpak: + runs-on: ubuntu-latest + permissions: + contents: read + + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + persist-credentials: false + + - name: Build Flatpak bundle + uses: flatpak/flatpak-github-actions/flatpak-builder@v6 + with: + bundle: GitHub-Store-x86_64.flatpak + manifest-path: packaging/flatpak/zed.rainxch.githubstore.yml + run-tests: false + upload-artifact: false + cache-key: flatpak-builder-${{ hashFiles('packaging/flatpak/flatpak-sources.json', 'packaging/flatpak/zed.rainxch.githubstore.yml') }} + + - name: Upload Flatpak bundle + uses: actions/upload-artifact@v4 + with: + name: linux-flatpak + path: GitHub-Store-x86_64.flatpak + if-no-files-found: error + retention-days: 30 + compression-level: 0 + release: name: Draft release with all installers - needs: [sign-windows, build-macos, build-linux] + needs: [sign-windows, build-macos, build-linux, build-flatpak] runs-on: ubuntu-latest permissions: contents: write @@ -572,6 +601,7 @@ jobs: linux_debian12_count=0 linux_appimage_count=0 linux_arch_count=0 + linux_flatpak_count=0 # Windows — names already unique (.exe, .msi). Files come from the # signed artifact, not the raw build output, so they carry the @@ -625,11 +655,17 @@ jobs: stage "$f" "$(basename "$f")" && linux_arch_count=$((linux_arch_count + 1)) || true done < <(find artifacts/linux-arch -type f -name '*.pkg.tar.zst' 2>/dev/null) + # Linux Flatpak bundle (.flatpak) + while IFS= read -r f; do + [ -n "$f" ] || continue + stage "$f" "$(basename "$f")" && linux_flatpak_count=$((linux_flatpak_count + 1)) || true + done < <(find artifacts/linux-flatpak -type f -name '*.flatpak' 2>/dev/null) + echo echo "Final staged files:" ls -la release-files/ echo - echo "Per-group counts: windows=$windows_count macos-x64=$macos_x64_count macos-arm64=$macos_arm64_count linux-modern=$linux_modern_count linux-debian12=$linux_debian12_count linux-appimage=$linux_appimage_count linux-arch=$linux_arch_count" + echo "Per-group counts: windows=$windows_count macos-x64=$macos_x64_count macos-arm64=$macos_arm64_count linux-modern=$linux_modern_count linux-debian12=$linux_debian12_count linux-appimage=$linux_appimage_count linux-arch=$linux_arch_count linux-flatpak=$linux_flatpak_count" # Completeness guard: refuse to ship an incomplete release. Each # group must produce >= 1 staged file. Without this guard, a build @@ -644,6 +680,7 @@ jobs: [ "$linux_debian12_count" -eq 0 ] && missing+=("Linux debian12-compat (.deb/.rpm)") [ "$linux_appimage_count" -eq 0 ] && missing+=("Linux AppImage (.AppImage/.zsync)") [ "$linux_arch_count" -eq 0 ] && missing+=("Linux Arch (.pkg.tar.zst)") + [ "$linux_flatpak_count" -eq 0 ] && missing+=("Linux Flatpak (.flatpak)") if [ ${#missing[@]} -gt 0 ]; then echo diff --git a/packaging/flatpak/zed.rainxch.githubstore.metainfo.xml b/packaging/flatpak/zed.rainxch.githubstore.metainfo.xml index 2dcc5752d..7411df929 100644 --- a/packaging/flatpak/zed.rainxch.githubstore.metainfo.xml +++ b/packaging/flatpak/zed.rainxch.githubstore.metainfo.xml @@ -62,6 +62,35 @@ + + +

Multi-OS release picker: download APKs from desktop and .debs from phone; + cross-platform downloads open in your browser. Adds "Hide seen repositories" + to declutter discovery feeds, content-width preference for desktop, and + AppImage distribution for Linux.

+
+
+ + +

APK inspection: view signatures, permissions, and metadata before installing. + Background update-check toggle to save battery. Migration tooling for + switching between installer types.

+
+
+ + +

Switched to a dedicated backend for improved reliability and faster response + times in throttled regions. Adds external import (paste a GitHub URL to add + a repository) and mirror picker for China users.

+
+
+ + +

Tweaks overhaul: installer attribution, font and theme customisation, and + per-app update channels. Link Apps feature: associate any installed app with + its GitHub repository for one-tap updates.

+
+

Security improvements: package name and signing key validation on updates, diff --git a/packaging/flatpak/zed.rainxch.githubstore.yml b/packaging/flatpak/zed.rainxch.githubstore.yml index b010e42bb..8d6919f97 100644 --- a/packaging/flatpak/zed.rainxch.githubstore.yml +++ b/packaging/flatpak/zed.rainxch.githubstore.yml @@ -106,7 +106,7 @@ modules: - ./gradlew :composeApp:packageUberJarForCurrentOS --no-daemon --no-configuration-cache - -Dorg.gradle.jvmargs="-Xmx6g -XX:MaxMetaspaceSize=2g" + -Dorg.gradle.jvmargs="-Xmx4g -XX:MaxMetaspaceSize=1g" -Dorg.gradle.parallel=false # Install the JAR - install -Dm644 "$(find composeApp/build/compose/jars/ -name '*.jar' -type f | head -1)"