- Add Comment field to all .desktop files for app launcher descriptions - Change category from Music to AudioVideo for better categorization - Add Keywords for improved searchability (audiophile, hifi, streaming) - Enhance metainfo.xml with detailed feature list and links - Configure AppImage bundle settings in tauri.conf.json - Update workflows to generate improved .desktop files AppImage now includes embedded icon via Tauri icon configuration. App will now appear in Multimedia category with proper description in all Linux app launchers.
106 lines
3.2 KiB
YAML
106 lines
3.2 KiB
YAML
name: Linux ARM64 (aarch64) Build
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
push:
|
|
branches: [main]
|
|
pull_request:
|
|
branches: [main]
|
|
release:
|
|
types: [created]
|
|
|
|
jobs:
|
|
build-linux-aarch64:
|
|
name: Build Linux aarch64
|
|
runs-on: ubuntu-24.04-arm
|
|
continue-on-error: true
|
|
permissions:
|
|
contents: write
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup Node
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 20
|
|
cache: npm
|
|
|
|
- name: Setup Rust
|
|
uses: dtolnay/rust-toolchain@stable
|
|
|
|
- name: Install system dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y \
|
|
libwebkit2gtk-4.1-dev \
|
|
libgtk-3-dev \
|
|
libappindicator3-dev \
|
|
librsvg2-dev \
|
|
libasound2-dev \
|
|
patchelf \
|
|
build-essential \
|
|
xdg-utils
|
|
|
|
- name: Install frontend deps
|
|
run: npm ci
|
|
|
|
- name: Build frontend
|
|
run: npm run build
|
|
|
|
- name: Build Tauri (deb + rpm + appimage)
|
|
run: npm run tauri build -- --bundles deb,rpm,appimage
|
|
|
|
- name: Collect artifacts
|
|
env:
|
|
VERSION: ${{ github.event.release.tag_name || 'dev' }}
|
|
run: |
|
|
mkdir -p dist
|
|
cp -v src-tauri/target/release/bundle/deb/*.deb dist/ || true
|
|
cp -v src-tauri/target/release/bundle/rpm/*.rpm dist/ || true
|
|
cp -v src-tauri/target/release/bundle/appimage/*.AppImage dist/ || true
|
|
|
|
# Create AUR tarball
|
|
ARCH=aarch64
|
|
TARBALL_DIR="qbz_${VERSION}_${ARCH}"
|
|
mkdir -p "tarball-staging/${TARBALL_DIR}/icons/hicolor"/{32x32,48x48,64x64,128x128,256x256}/apps
|
|
|
|
# Binary
|
|
cp src-tauri/target/release/qbz-nix "tarball-staging/${TARBALL_DIR}/qbz"
|
|
|
|
# Icons
|
|
cp src-tauri/icons/32x32.png "tarball-staging/${TARBALL_DIR}/icons/hicolor/32x32/apps/qbz.png"
|
|
cp src-tauri/icons/128x128.png "tarball-staging/${TARBALL_DIR}/icons/hicolor/48x48/apps/qbz.png"
|
|
cp src-tauri/icons/128x128.png "tarball-staging/${TARBALL_DIR}/icons/hicolor/64x64/apps/qbz.png"
|
|
cp src-tauri/icons/128x128.png "tarball-staging/${TARBALL_DIR}/icons/hicolor/128x128/apps/qbz.png"
|
|
cp src-tauri/icons/128x128@2x.png "tarball-staging/${TARBALL_DIR}/icons/hicolor/256x256/apps/qbz.png"
|
|
|
|
# Desktop file
|
|
cat > "tarball-staging/${TARBALL_DIR}/qbz.desktop" << 'EOF'
|
|
[Desktop Entry]
|
|
Name=QBZ
|
|
Comment=Native Qobuz client with hi-res audio support
|
|
Exec=qbz
|
|
Icon=qbz
|
|
Terminal=false
|
|
Type=Application
|
|
Categories=AudioVideo;Audio;Music;Player;
|
|
Keywords=music;audio;qobuz;hifi;streaming;audiophile;
|
|
EOF
|
|
|
|
tar -czf "dist/qbz_${VERSION}_${ARCH}.tar.gz" -C tarball-staging "${TARBALL_DIR}"
|
|
ls -la dist
|
|
|
|
- name: Upload artifacts
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: qbz-linux-aarch64
|
|
path: dist/*
|
|
|
|
- name: Publish GitHub Release Assets
|
|
if: startsWith(github.ref, 'refs/tags/')
|
|
uses: softprops/action-gh-release@v2
|
|
with:
|
|
files: dist/*
|