From cd5541440e0162544856be65bc137c248925432a Mon Sep 17 00:00:00 2001 From: Suyog Tandel Date: Tue, 13 Jan 2026 12:50:23 +0530 Subject: [PATCH] feat: Add nightly release workflow --- .github/workflows/release-nightly.yml | 104 ++++++++++++++++++++++++++ README.md | 6 +- src/lib/layout/sidebar.svelte | 25 +++---- 3 files changed, 114 insertions(+), 21 deletions(-) create mode 100644 .github/workflows/release-nightly.yml diff --git a/.github/workflows/release-nightly.yml b/.github/workflows/release-nightly.yml new file mode 100644 index 0000000..b5a9ce4 --- /dev/null +++ b/.github/workflows/release-nightly.yml @@ -0,0 +1,104 @@ +name: "publish-stable" +on: + push: + branches: + - release-nightly + +jobs: + publish-tauri: + permissions: + contents: write + strategy: + fail-fast: false + matrix: + include: + - platform: "macos-latest" + args: "--target aarch64-apple-darwin" + - platform: "macos-latest" + args: "--target x86_64-apple-darwin" + - platform: "ubuntu-22.04" + args: "" + - platform: "windows-latest" + args: "--target x86_64-pc-windows-msvc" + - platform: "windows-latest" + args: "--target i686-pc-windows-msvc" + - platform: "windows-latest" + args: "--target aarch64-pc-windows-msvc" + + runs-on: ${{ matrix.platform }} + steps: + - uses: actions/checkout@v4 + + - name: setup node + uses: actions/setup-node@v4 + with: + node-version: lts/* + + - name: install Rust stable + uses: dtolnay/rust-toolchain@stable + with: + targets: > + ${{ matrix.platform == 'macos-latest' && 'aarch64-apple-darwin,x86_64-apple-darwin' || + matrix.platform == 'windows-latest' && 'x86_64-pc-windows-msvc,i686-pc-windows-msvc,aarch64-pc-windows-msvc' || '' }} + + - name: install dependencies (ubuntu only) + if: matrix.platform == 'ubuntu-22.04' + run: | + sudo apt-get update + sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf libpcsclite-dev libudev-dev libusb-1.0-0-dev + # --- ADDED: Prerequisites for repacking AppImage --- + sudo apt-get install -y fuse libfuse2 + + - name: Setup Deno + uses: denoland/setup-deno@v2 + with: + deno-version: v2.x + + - name: install frontend dependencies + run: deno install + + - name: Extract version from Cargo.toml + id: get_version + shell: bash + run: | + cargo_file="src-tauri/Cargo.toml" + version=$(grep -m 1 '^version' "$cargo_file" | sed -E 's/.*"([0-9]+\.[0-9]+\.[0-9]+)".*/\1/') + echo "version=$version" >> $GITHUB_ENV + + - uses: tauri-apps/tauri-action@v0 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tagName: v${{ env.version }} + releaseName: "PicoForge(v${{ env.version }})-nightly" + releaseBody: | + ### PicoForge app(v${{ env.version }}) Nightly release + + > [!CAUTION] + > This is a nightly release and thus will have bugs. + > + > I am not responsible if using this build bricks your pico in any way. + releaseDraft: true + prerelease: false + args: ${{ matrix.args }} + + - name: Patch and Overwrite AppImage + if: matrix.platform == 'ubuntu-22.04' + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + wget -q https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage + chmod +x appimagetool-x86_64.AppImage + + APPIMAGE_PATH=$(find src-tauri/target/release/bundle/appimage -name "*.AppImage" | head -n 1) + echo "Patching local file: $APPIMAGE_PATH" + + $APPIMAGE_PATH --appimage-extract > /dev/null + rm -f squashfs-root/usr/lib/libpcsclite.so.1 + + ARCH=x86_64 ./appimagetool-x86_64.AppImage --appimage-extract-and-run squashfs-root/ "$APPIMAGE_PATH" + + echo "Overwriting Draft Release asset..." + gh release upload "v${{ env.version }}" "$APPIMAGE_PATH" --clobber + + echo "Success! The Draft Release now has the fixed AppImage." diff --git a/README.md b/README.md index b3eb0df..a472f15 100644 --- a/README.md +++ b/README.md @@ -17,8 +17,6 @@ > This software does not share any code with the official closed-source pico-fido application. > > For some reason, when running the app on windows, it needs to be ran as administrator or it cannot detect the device, this will be fixed in future. Till then run the app as admin. -> -> For linux users if RPM or DEB does not work or not supported on the distro, it is better to compile the app from source and use it, AppImages does not work correctly as of now. ## About @@ -32,8 +30,6 @@ PicoForge is a modern desktop application for configuring and managing Pico FIDO - Support for multiple hardware variants and vendors > **Alpha Status**: This application is currently under active development and in alpha stage. Users should expect bugs and are encouraged to report them. The app has been tested on Linux and Windows 10 with the official Raspberry Pi Pico2 and currently supports Pico FIDO firmware version 7.2 only. -> -> The AppImage in the release builds have a lot of issues right now, I will fix them in the next or upcomming releases, till then you can either complie the app from source or use the .deb/.rpm versions from the releases. ## Screenshots @@ -113,7 +109,7 @@ The compiled binaries will be available in: #### Linux -- AppImages do not work, either use DEBs or RPMs, or build from source. +- AppImages are preferred way to use the applicatoion, just make sure you have pcsc daemon installed and running before starting the appimage. - Flatpaks are planned for future `BETA` versions of the apps. diff --git a/src/lib/layout/sidebar.svelte b/src/lib/layout/sidebar.svelte index 8a52d63..39a9770 100644 --- a/src/lib/layout/sidebar.svelte +++ b/src/lib/layout/sidebar.svelte @@ -35,18 +35,6 @@ { view: "about", icon: Info, label: "About" }, ]; - function minimize() { - appWindow.minimize(); - } - - async function toggleMaximize() { - await appWindow.toggleMaximize(); - } - - function closeApp() { - appWindow.close(); - } - onMount(() => { const setupWindow = async () => { isMaximized = await appWindow.isMaximized(); @@ -83,7 +71,7 @@ {#each menuItems as item} onViewChange(item.view)}> - + {item.label} @@ -130,11 +118,11 @@
- - -