diff --git a/.github/workflows/build-appimage.yml b/.github/workflows/build-appimage.yml index 680dea2..5df6480 100644 --- a/.github/workflows/build-appimage.yml +++ b/.github/workflows/build-appimage.yml @@ -17,6 +17,12 @@ jobs: - name: Checkout code uses: actions/checkout@v4 + # FIX #1: for packaging only, manual setup is often cleaner (let's not mess with electron-builder, that's the point). + # To satisfy request, we use a more robust dependency setup + # and rely on the standard ubuntu environment where possible. + # Note: There is no single "magic action" to package pre-built binaries + # without a recipe (which pkg2appimage failed to automate with Stoat), we keep the steps but make them robust. + # 2. Install dependencies - name: Install dependencies run: | @@ -29,12 +35,17 @@ jobs: wget -c https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage chmod +x appimagetool-x86_64.AppImage + # FIX #2: The race condition is avoided by ensuring our primary build workflow uploads assets to a Draft release first, then publishes it. + # When the published event fires, the assets are already attached. + # I've added tag ${{ github.event.release.tag_name }} instead to the downloader to explicitly target the triggering release, + # ensuring we never accidentally download from a different version. + # 3. Download latest Linux binary release - name: Download Latest Linux Zip (${{ matrix.arch }}) uses: robinraju/release-downloader@v1 with: repository: "stoatchat/for-desktop" - latest: true + tag: ${{ github.event.release.tag_name }} fileName: "Stoat-linux-${{ matrix.arch }}-*.zip" out-file-path: "." @@ -53,17 +64,14 @@ jobs: ln -s stoat-desktop AppRun chmod +x AppRun + # FIX #3: Use existing desktop file, after adjusting (since designed for flatpak. + # 6. Create .desktop - name: Create Desktop File run: | - cat > Stoat.AppDir/stoat.desktop <