From db20682004da991bed993ecbec73d565c4346890 Mon Sep 17 00:00:00 2001 From: "Dr.Blank" Date: Fri, 23 May 2025 10:53:24 +0530 Subject: [PATCH] feat: Add AppImage build and generic naming for Linux artifacts (#83) Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> --- .github/workflows/flutter-ci.yaml | 38 ++++++++++++++++++++--- README.md | 5 +++ linux/packaging/appimage/make_config.yaml | 34 ++++++++++++++++++++ 3 files changed, 72 insertions(+), 5 deletions(-) create mode 100644 linux/packaging/appimage/make_config.yaml diff --git a/.github/workflows/flutter-ci.yaml b/.github/workflows/flutter-ci.yaml index 1404451..e3e19d7 100644 --- a/.github/workflows/flutter-ci.yaml +++ b/.github/workflows/flutter-ci.yaml @@ -111,20 +111,48 @@ jobs: - name: Install Linux dependencies run: | sudo apt-get update -y - sudo apt-get install -y clang cmake ninja-build pkg-config libgtk-3-dev liblzma-dev + sudo apt-get install -y clang cmake ninja-build pkg-config libgtk-3-dev liblzma-dev locate libfuse2 + # Download and install appimagetool + wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage + chmod +x appimagetool-x86_64.AppImage + sudo mv appimagetool-x86_64.AppImage /usr/local/bin/appimagetool shell: bash - name: setup fastforge run: | dart pub global activate fastforge - - name: Build Linux AppImage - run: fastforge package --platform linux --targets deb + - name: Build Linux AppImage and deb + run: fastforge package --platform linux --targets deb,appimage - - name: Upload deb Artifacts + - name: Rename Linux Artifacts + run: | + # Find and rename .deb file + DEB_FILE=$(find dist/ -name "*.deb" -type f) + if [ -n "$DEB_FILE" ]; then + mv "$DEB_FILE" dist/vaani-linux-amd64.deb + echo "Renamed DEB: $DEB_FILE to dist/vaani-linux-amd64.deb" + else + echo "Error: .deb file not found in dist/" + exit 1 + fi + + # Find and rename .AppImage file + APPIMAGE_FILE=$(find dist/ -name "*.AppImage" -type f) + if [ -n "$APPIMAGE_FILE" ]; then + mv "$APPIMAGE_FILE" dist/vaani-linux-amd64.AppImage + echo "Renamed AppImage: $APPIMAGE_FILE to dist/vaani-linux-amd64.AppImage" + else + echo "Error: .AppImage file not found in dist/" + exit 1 + fi + shell: bash + + - name: Upload Linux Artifacts uses: actions/upload-artifact@v4 with: name: linux-release-artifacts path: | - dist/*/*.deb + dist/vaani-linux-amd64.deb + dist/vaani-linux-amd64.AppImage # Job 4: Create GitHub Release (NEW - runs only on tag pushes) create_release: diff --git a/README.md b/README.md index 869bc3f..14f16fb 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,11 @@ Client for [Audiobookshelf](https://github.com/advplyr/audiobookshelf) server ma *Play Store version is paid if you want to support the development.* +### Linux + +[Download Linux (.deb)](https://github.com/Dr-Blank/Vaani/releases/latest/download/vaani-linux-amd64.deb) +[Download Linux (AppImage)](https://github.com/Dr-Blank/Vaani/releases/latest/download/vaani-linux-amd64.AppImage) + ## Screencaps https://github.com/user-attachments/assets/2ac9ace2-4a3c-40fc-adde-55914e4cf62d diff --git a/linux/packaging/appimage/make_config.yaml b/linux/packaging/appimage/make_config.yaml new file mode 100644 index 0000000..b1183ae --- /dev/null +++ b/linux/packaging/appimage/make_config.yaml @@ -0,0 +1,34 @@ +display_name: Vaani +package_name: vaani + +maintainer: + name: Dr.Blank + email: drblankdev@gmail.com + +priority: optional + +section: x11 + +installed_size: 75700 + +essential: false + +icon: assets/icon/logo.png + +postuninstall_scripts: + - echo "Sorry to see you go." + +keywords: + - Audiobook + - Audiobook Player + - Audiobookshelf + +generic_name: Audiobook Player + +categories: + - AudioVideo + - Audio + - Player + +startup_notify: true +# TODO: Review and update fields for AppImage specifics (e.g., icon, metadata).