From 1d59c8c7c3969b61b2f0cbba87ff8ec84eb024ea Mon Sep 17 00:00:00 2001 From: Lasan Mahaliyana Date: Sun, 1 Mar 2026 10:06:51 +0530 Subject: [PATCH] updated workflow and CMakeLists.txt --- .../workflows/release-nearby-qml-tray.yaml | 67 +++++++++++++++---- sharing/linux/qml_tray_app/CMakeLists.txt | 9 +++ 2 files changed, 62 insertions(+), 14 deletions(-) diff --git a/.github/workflows/release-nearby-qml-tray.yaml b/.github/workflows/release-nearby-qml-tray.yaml index b5bd36b4..ec773b19 100644 --- a/.github/workflows/release-nearby-qml-tray.yaml +++ b/.github/workflows/release-nearby-qml-tray.yaml @@ -89,31 +89,68 @@ jobs: - name: Configure QML tray app run: | + STAGING="$RUNNER_TEMP/staging" cmake -S sharing/linux/qml_tray_app \ -B sharing/linux/qml_tray_app/build \ -DCMAKE_BUILD_TYPE=Release \ - -DNEARBY_INSTALL_PREFIX="${{ steps.nearby.outputs.nearby_prefix }}" + -DCMAKE_INSTALL_PREFIX="$STAGING" \ + -DNEARBY_PREFIX="${{ steps.nearby.outputs.nearby_prefix }}" - name: Build QML tray app run: cmake --build sharing/linux/qml_tray_app/build -j - - name: Package release bundle - run: | - cd sharing/linux/qml_tray_app/build - cpack -G ZIP + - name: Install to staging directory + run: cmake --install sharing/linux/qml_tray_app/build - - name: Generate SHA256 checksum + - name: Package tarball run: | - cd sharing/linux/qml_tray_app/build - sha256sum nearby_qml_tray_app-Linux-x86_64.zip > nearby_qml_tray_app-Linux-x86_64.zip.sha256 + STAGING="$RUNNER_TEMP/staging" + TARBALL="nearby-file-share-linux-x86_64.tar.gz" + tar -czf "$RUNNER_TEMP/$TARBALL" -C "$STAGING" . + echo "tarball=$RUNNER_TEMP/$TARBALL" >> "$GITHUB_ENV" + echo "tarball_name=$TARBALL" >> "$GITHUB_ENV" - - name: Upload build artifact + - name: Download linuxdeploy + run: | + cd "$RUNNER_TEMP" + curl -fSL -o linuxdeploy-x86_64.AppImage \ + https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage + curl -fSL -o linuxdeploy-plugin-qt-x86_64.AppImage \ + https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage + chmod +x linuxdeploy-x86_64.AppImage linuxdeploy-plugin-qt-x86_64.AppImage + + - name: Build AppImage + run: | + STAGING="$RUNNER_TEMP/staging" + NEARBY_PREFIX="${{ steps.nearby.outputs.nearby_prefix }}" + export QMAKE="$(which qmake6)" + export OUTPUT="$RUNNER_TEMP/Nearby_File_Share-x86_64.AppImage" + "$RUNNER_TEMP/linuxdeploy-x86_64.AppImage" \ + --appdir "$RUNNER_TEMP/AppDir" \ + --executable "$STAGING/bin/nearby_qml_file_tray_app" \ + --desktop-file sharing/linux/qml_tray_app/nearby-file-share.desktop \ + --icon-file sharing/linux/qml_tray_app/tray_icon.png \ + --library "$NEARBY_PREFIX/lib/libnearby_connections_service_linux_shared.so" \ + --plugin qt \ + --output appimage + echo "appimage=$OUTPUT" >> "$GITHUB_ENV" + echo "appimage_name=Nearby_File_Share-x86_64.AppImage" >> "$GITHUB_ENV" + + - name: Generate SHA256 checksums + run: | + cd "$RUNNER_TEMP" + sha256sum "${{ env.tarball_name }}" > "${{ env.tarball_name }}.sha256" + sha256sum "${{ env.appimage_name }}" > "${{ env.appimage_name }}.sha256" + + - name: Upload build artifacts uses: actions/upload-artifact@v4 with: - name: nearby_qml_tray_app-Linux-x86_64 + name: nearby-file-share-linux-x86_64 path: | - sharing/linux/qml_tray_app/build/nearby_qml_tray_app-Linux-x86_64.zip - sharing/linux/qml_tray_app/build/nearby_qml_tray_app-Linux-x86_64.zip.sha256 + ${{ env.tarball }} + ${{ env.tarball }}.sha256 + ${{ env.appimage }} + ${{ env.appimage }}.sha256 - name: Publish GitHub Release if: startsWith(github.ref, 'refs/tags/') @@ -121,5 +158,7 @@ jobs: with: generate_release_notes: true files: | - sharing/linux/qml_tray_app/build/nearby_qml_tray_app-Linux-x86_64.zip - sharing/linux/qml_tray_app/build/nearby_qml_tray_app-Linux-x86_64.zip.sha256 + ${{ env.tarball }} + ${{ env.tarball }}.sha256 + ${{ env.appimage }} + ${{ env.appimage }}.sha256 diff --git a/sharing/linux/qml_tray_app/CMakeLists.txt b/sharing/linux/qml_tray_app/CMakeLists.txt index a95a94da..577d83b1 100644 --- a/sharing/linux/qml_tray_app/CMakeLists.txt +++ b/sharing/linux/qml_tray_app/CMakeLists.txt @@ -30,3 +30,12 @@ target_link_libraries(nearby_qml_file_tray_app PRIVATE Qt6::Core Qt6::Gui Qt6::Widgets Qt6::Qml Qt6::Quick Qt6::QuickControls2 "${NEARBY_LIB}" ) + +set_target_properties(nearby_qml_file_tray_app PROPERTIES + INSTALL_RPATH "$ORIGIN/lib" +) + +include(GNUInstallDirs) + +install(TARGETS nearby_qml_file_tray_app RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") +install(FILES "${NEARBY_LIB}" DESTINATION "${CMAKE_INSTALL_LIBDIR}")