From d1cb638d5feff34a575a49ec30c89104472d9be0 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Thu, 22 May 2025 02:45:30 +0000 Subject: [PATCH] feat: Add AppImage build and generic naming for Linux artifacts This commit introduces the following changes to the Linux release process: - **AppImage Support:** The GitHub Actions workflow (`flutter-ci.yaml`) now builds an AppImage alongside the existing .deb package for Linux releases. This involves: - Installing `appimagetool` and `locate` as part of the build dependencies. - Updating the `fastforge package` command to include `appimage` as a target. - Adding a new AppImage configuration file (`linux/packaging/appimage/make_config.yaml`), based on the existing .deb configuration. A TODO has been added to this file to prompt review for AppImage-specific fields. - **Generic Artifact Naming:** Both the .deb and AppImage files are now renamed to generic, version-less names (`fast-forge-linux-amd64.deb` and `fast-forge-linux-amd64.AppImage`) before being uploaded as release artifacts. This makes it easier to provide stable download links. - **README Update:** The `README.md` has been updated with direct download links to these generically named .deb and AppImage files from the latest GitHub release. --- .github/workflows/flutter-ci.yaml | 38 ++++++++++++++++++++--- README.md | 5 +++ linux/packaging/appimage/make_config.yaml | 33 ++++++++++++++++++++ 3 files changed, 71 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..cca494c 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 + # 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/fast-forge-linux-amd64.deb + echo "Renamed DEB: $DEB_FILE to dist/fast-forge-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/fast-forge-linux-amd64.AppImage + echo "Renamed AppImage: $APPIMAGE_FILE to dist/fast-forge-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/fast-forge-linux-amd64.deb + dist/fast-forge-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..8db8393 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/fast-forge-linux-amd64.deb) +[Download Linux (AppImage)](https://github.com/Dr-Blank/Vaani/releases/latest/download/fast-forge-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..236176b --- /dev/null +++ b/linux/packaging/appimage/make_config.yaml @@ -0,0 +1,33 @@ +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: + - Media + - Utility + +startup_notify: true +# TODO: Review and update fields for AppImage specifics (e.g., icon, metadata).