# Claude Desktop — AppImage Build Pipeline # Triggert bei [appimage] im Commit oder bei Release-Tags (v*) name: Build AppImage on: push: tags: - 'v*' branches: - main jobs: build: runs-on: docker if: contains(github.event.head_commit.message, '[appimage]') || startsWith(github.ref, 'refs/tags/v') container: image: ghcr.io/aspect-build/rust:stable-node22-bookworm steps: - name: Checkout run: | git clone --depth 1 --branch "${GITHUB_REF_NAME}" \ "https://oauth2:${{ secrets.REGISTRY_TOKEN }}@git.data-it-solution.de/${GITHUB_REPOSITORY}.git" . - name: Install System Dependencies run: | apt-get update apt-get install -y \ libwebkit2gtk-4.1-dev \ libappindicator3-dev \ librsvg2-dev \ patchelf \ libssl-dev \ libgtk-3-dev \ libayatana-appindicator3-dev \ file - name: Install npm packages run: npm ci - name: Build Tauri App run: | npm run tauri build -- --bundles appimage ls -la src-tauri/target/release/bundle/appimage/ - name: Get Version id: version run: | VERSION=$(grep '^version' src-tauri/Cargo.toml | head -1 | sed 's/.*"\(.*\)"/\1/') echo "version=${VERSION}" >> $GITHUB_OUTPUT echo "Version: ${VERSION}" - name: Upload to Release if: startsWith(github.ref, 'refs/tags/v') run: | APPIMAGE=$(ls src-tauri/target/release/bundle/appimage/*.AppImage | head -1) FILENAME=$(basename "$APPIMAGE") TAG="${GITHUB_REF#refs/tags/}" echo "Lade $FILENAME zu Release $TAG hoch..." # Release erstellen falls nicht vorhanden curl -s -X POST \ -H "Authorization: token ${{ secrets.REGISTRY_TOKEN }}" \ -H "Content-Type: application/json" \ "https://git.data-it-solution.de/api/v1/repos/${GITHUB_REPOSITORY}/releases" \ -d "{\"tag_name\":\"${TAG}\",\"name\":\"${TAG}\",\"body\":\"Release ${TAG}\"}" || true # Release-ID holen RELEASE_ID=$(curl -s \ -H "Authorization: token ${{ secrets.REGISTRY_TOKEN }}" \ "https://git.data-it-solution.de/api/v1/repos/${GITHUB_REPOSITORY}/releases/tags/${TAG}" \ | grep -o '"id":[0-9]*' | head -1 | sed 's/"id"://') echo "Release-ID: $RELEASE_ID" # AppImage hochladen curl -s -X POST \ -H "Authorization: token ${{ secrets.REGISTRY_TOKEN }}" \ -H "Content-Type: application/octet-stream" \ "https://git.data-it-solution.de/api/v1/repos/${GITHUB_REPOSITORY}/releases/${RELEASE_ID}/assets?name=${FILENAME}" \ --data-binary "@${APPIMAGE}" echo "Upload abgeschlossen: ${FILENAME}"