mirror of
https://github.com/Felitendo/spotifast.git
synced 2026-11-01 09:23:26 +01:00
Packages no longer install a fastpotify command or declare that they replace, provide or conflict with the old packages. Releases no longer carry the 0.9.1 bridge files, the release script only checks and sums Spotifast downloads, and the Flatpak, Homebrew, macOS and Windows recipes lose their old-identity branches and clean-ups. Packaging CI tests the v0.11.2 release instead of installing the 0.8.0 package first. The Rename page and the notes pointing to it are gone. Updates begun by 0.10.2 or earlier on Windows relaunch fastpotify.exe, which the installer no longer provides; such an install updates, but needs starting by hand once.
139 lines
4.7 KiB
YAML
139 lines
4.7 KiB
YAML
name: Packaging
|
|
|
|
on:
|
|
push:
|
|
branches: [main, master]
|
|
paths: [native-packages.yaml, packaging/**, contrib/omarchy/**, .github/workflows/packaging.yml, .github/workflows/release.yml]
|
|
pull_request:
|
|
paths: [native-packages.yaml, packaging/**, contrib/omarchy/**, .github/workflows/packaging.yml, .github/workflows/release.yml]
|
|
workflow_dispatch:
|
|
inputs:
|
|
version:
|
|
description: Published version (empty tests the pinned v0.11.2 fixture)
|
|
type: string
|
|
default: ''
|
|
publish:
|
|
description: Attach packages and run enabled downstream publishers
|
|
type: boolean
|
|
default: false
|
|
workflow_call:
|
|
inputs:
|
|
version:
|
|
required: true
|
|
type: string
|
|
publish:
|
|
type: boolean
|
|
default: true
|
|
secrets:
|
|
AUR_SSH_KEY:
|
|
required: false
|
|
AUR_KNOWN_HOSTS:
|
|
required: false
|
|
HOMEBREW_TAP_GITHUB_TOKEN:
|
|
required: false
|
|
HOMEBREW_TAP_SSH_KEY:
|
|
required: false
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
packaging:
|
|
permissions:
|
|
contents: write
|
|
uses: crmne/native-packages/.github/workflows/package.yml@999768410cf53cdc68c8679c09cb14de1a6bca7b # v0.8.1
|
|
with:
|
|
targets: linux-amd64,linux-arm64
|
|
# Packaging changes exercise real release binaries on both architectures.
|
|
# Update this fixture deliberately; releases use their own tag instead.
|
|
version: ${{ inputs.version || 'v0.11.2' }}
|
|
publish: ${{ inputs.publish == true && inputs.version != '' }}
|
|
secrets: inherit
|
|
|
|
homebrew:
|
|
name: Homebrew install (macOS)
|
|
needs: packaging
|
|
runs-on: macos-latest
|
|
timeout-minutes: 15
|
|
steps:
|
|
- uses: actions/download-artifact@v4
|
|
with:
|
|
name: native-packages
|
|
path: dist/native-packages
|
|
- name: Install and remove the generated cask
|
|
env:
|
|
HOMEBREW_NO_AUTO_UPDATE: 1
|
|
run: |
|
|
brew tap-new --no-git spotifast/validation
|
|
tap="$(brew --repository)/Library/Taps/spotifast/homebrew-validation"
|
|
mkdir -p "$tap/Casks"
|
|
cp dist/native-packages/recipes/homebrew/spotifast.rb "$tap/Casks/spotifast.rb"
|
|
brew install --cask spotifast/validation/spotifast
|
|
app=/Applications/Spotifast.app
|
|
executable=$(/usr/libexec/PlistBuddy -c 'Print :CFBundleExecutable' "$app/Contents/Info.plist")
|
|
"$app/Contents/MacOS/$executable" --version
|
|
codesign --verify --strict "$app"
|
|
brew uninstall --cask spotifast/validation/spotifast
|
|
test ! -e "$app"
|
|
|
|
# The AppImage carries no libraries of its own, so the runner supplies
|
|
# ALSA as a desktop would. Runners have no FUSE: it unpacks itself to run.
|
|
appimage:
|
|
name: AppImage (${{ matrix.os }})
|
|
needs: packaging
|
|
runs-on: ${{ matrix.os }}
|
|
timeout-minutes: 10
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- os: ubuntu-24.04
|
|
target: linux-amd64
|
|
arch: x86_64
|
|
- os: ubuntu-24.04-arm
|
|
target: linux-arm64
|
|
arch: aarch64
|
|
steps:
|
|
- uses: actions/download-artifact@v4
|
|
with:
|
|
name: native-packages
|
|
path: dist/native-packages
|
|
- name: Run the AppImage
|
|
env:
|
|
TARGET: ${{ matrix.target }}
|
|
ARCH: ${{ matrix.arch }}
|
|
run: |
|
|
sudo apt-get update
|
|
# The AppImage bundles no libraries, so it needs what the DEB depends on.
|
|
sudo apt-get install -y --no-install-recommends \
|
|
libdbus-1-3 libgl1 libegl1 libxkbcommon0 libxkbcommon-x11-0 \
|
|
libwayland-client0 libwayland-cursor0 libwayland-egl1 libx11-6 \
|
|
libx11-xcb1 libxcursor1 libxi6 libxrandr2 libasound2t64 libpulse0
|
|
set -- dist/native-packages/packages/"$TARGET"/appimage/spotifast-*-"$ARCH".AppImage
|
|
test "$#" -eq 1
|
|
chmod +x "$1"
|
|
"$1" --appimage-extract-and-run --version | grep -Ex 'spotifast [0-9]+\.[0-9]+\.[0-9]+.*'
|
|
|
|
installation:
|
|
name: Install (${{ matrix.os }}, ${{ matrix.image }})
|
|
needs: packaging
|
|
runs-on: ${{ matrix.os }}
|
|
timeout-minutes: 20
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ubuntu-24.04, ubuntu-24.04-arm]
|
|
image: ['ubuntu:24.04', 'debian:13-slim', 'fedora:41', 'fedora:latest']
|
|
steps:
|
|
- uses: actions/checkout@v7
|
|
- uses: actions/download-artifact@v4
|
|
with:
|
|
name: native-packages
|
|
path: dist/native-packages
|
|
- name: Release filename regression checks
|
|
run: python3 packaging/test-release-names.py
|
|
- name: Install and check runtime libraries in a clean container
|
|
env:
|
|
IMAGE: ${{ matrix.image }}
|
|
run: bash packaging/test-install.sh "$IMAGE" dist/native-packages
|