Files

65 lines
2.0 KiB
YAML

name: release
on:
push:
tags: ['v*']
workflow_dispatch:
jobs:
publish:
runs-on: ubuntu-24.04
strategy:
matrix:
include:
- rid: linux-x64
- rid: linux-arm64
- rid: win-x64
- rid: win-arm64
steps:
- uses: actions/checkout@v4
- uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.0.x
- name: Publish (self-contained)
run: dotnet publish src/NotZune.Desktop -r ${{ matrix.rid }} -c Release -o publish/${{ matrix.rid }} --self-contained true
- name: Verify vendored BASS natives ship
run: |
if [ "${{ matrix.rid }}" = "linux-x64" ] || [ "${{ matrix.rid }}" = "linux-arm64" ] || [ "${{ matrix.rid }}" = "win-x64" ]; then
test -n "$(find publish/${{ matrix.rid }}/Native -name 'bass*' 2>/dev/null)" || { echo "BASS natives missing for ${{ matrix.rid }}"; exit 1; }
fi
- name: Archive
run: |
cd publish
zip -r ../not-zune-${{ matrix.rid }}.zip ${{ matrix.rid }}
- uses: actions/upload-artifact@v4
with:
name: not-zune-${{ matrix.rid }}
path: not-zune-${{ matrix.rid }}.zip
github-release:
needs: publish
if: startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-24.04
permissions:
contents: write
steps:
- uses: actions/download-artifact@v4
with:
merge-multiple: true
- uses: softprops/action-gh-release@v2
with:
files: not-zune-*.zip
body: |
## Not-Zune
### Platform notes
- **Linux (x64/arm64):** video playback requires system VLC (`sudo apt install vlc`) — libVLC is loaded from the system at runtime.
- **Windows x64:** full audio + video (BASS natives vendored, VLC natives bundled via VideoLAN.LibVLC.Windows).
- **Windows arm64:** BASS has no ARM64 natives — playback runs in simulated (silent) mode; video unaffected.