diff --git a/.github/workflows/build-appimage.yml b/.github/workflows/build-appimage.yml new file mode 100644 index 0000000..680dea2 --- /dev/null +++ b/.github/workflows/build-appimage.yml @@ -0,0 +1,99 @@ +name: Build AppImage + +on: + workflow_dispatch: + release: + types: [published] + +jobs: + build-appimage: + runs-on: ubuntu-latest + strategy: + matrix: + arch: [x64, arm64] + + steps: + # 1. Checkout source code + - name: Checkout code + uses: actions/checkout@v4 + + # 2. Install dependencies + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get install -y desktop-file-utils zsync libfuse2 + + # 3. Download appimagetool + - name: Download appimagetool + run: | + wget -c https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage + chmod +x appimagetool-x86_64.AppImage + + # 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 + fileName: "Stoat-linux-${{ matrix.arch }}-*.zip" + out-file-path: "." + + # 4. Setup AppDir + - name: Setup AppDir + run: | + mkdir -p Stoat.AppDir + unzip Stoat-linux-${{ matrix.arch }}-*.zip + mv Stoat-linux-${{ matrix.arch }}/* Stoat.AppDir/ + rmdir Stoat-linux-${{ matrix.arch }} + + # 5. Create AppRun + - name: Create AppRun + run: | + cd Stoat.AppDir + ln -s stoat-desktop AppRun + chmod +x AppRun + + # 6. Create .desktop + - name: Create Desktop File + run: | + cat > Stoat.AppDir/stoat.desktop <