diff --git a/.github/workflows/build-appimage.yml b/.github/workflows/build-appimage.yml new file mode 100644 index 0000000..2d66e36 --- /dev/null +++ b/.github/workflows/build-appimage.yml @@ -0,0 +1,63 @@ +name: Build AppImage + +on: + workflow_dispatch: + inputs: + version: + description: "Version tag (e.g. 0.1.0)" + required: false + default: "" + +jobs: + build: + runs-on: ubuntu-22.04 + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install system dependencies + run: | + sudo apt-get update + sudo apt-get install -y \ + libwebkit2gtk-4.1-dev \ + libgtk-3-dev \ + libayatana-appindicator3-dev \ + librsvg2-dev \ + libsoup-3.0-dev \ + patchelf \ + file + + - name: Setup pnpm + uses: pnpm/action-setup@v4 + with: + version: latest + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 22 + cache: pnpm + + - name: Setup Rust + uses: dtolnay/rust-toolchain@stable + + - name: Cache Rust dependencies + uses: Swatinem/rust-cache@v2 + with: + workspaces: src-tauri + + - name: Install frontend dependencies + run: pnpm install + + - name: Build AppImage + run: pnpm tauri build --bundles appimage + env: + NO_STRIP: "true" + + - name: Upload AppImage + uses: actions/upload-artifact@v4 + with: + name: Moku-${{ github.event.inputs.version || github.sha }}-amd64.AppImage + path: src-tauri/target/release/bundle/appimage/*.AppImage + if-no-files-found: error