Files
qbz/.github/workflows/release-linux-aarch64.yml
T
vicrodh 43ed44daf7 chore: Improve desktop integration and AppImage metadata for release
- 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.
2026-01-20 21:03:07 -06:00

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/*