Skip to content

fix: use macos-15-intel runner for Intel build #21

fix: use macos-15-intel runner for Intel build

fix: use macos-15-intel runner for Intel build #21

Workflow file for this run

name: Release
on:
push:
tags:
- 'v*'
workflow_dispatch:
inputs:
tag:
description: 'Release tag to upload artifacts to (e.g. v1.0.0)'
required: false
permissions:
contents: write
jobs:
build-windows:
name: Build Windows
runs-on: windows-latest
env:
WAILS_VERSION: v2.12.0
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.11'
- uses: actions/setup-go@v5
with:
go-version: '1.23'
cache-dependency-path: antra-wails/go.sum
- uses: actions/setup-node@v4
with:
node-version: '18'
- name: Install Python Dependencies
run: pip install -r requirements-desktop.txt
- name: Install UPX
run: |
choco install upx -y
upx --version
- name: Install Wails CLI
run: go install github.com/wailsapp/wails/v2/cmd/wails@${{ env.WAILS_VERSION }}
- name: Build Python Backend
working-directory: antra-wails
run: |
New-Item -ItemType Directory -Force -Path runtime/backend | Out-Null
pyinstaller backend_runtime.spec --distpath runtime/backend --noconfirm
- name: Build Wails App
working-directory: antra-wails
run: wails build -clean
- name: Upload Windows artifact
uses: actions/upload-artifact@v4
with:
name: Antra-Windows
path: antra-wails/build/bin/Antra.exe
build-linux:
name: Build Linux
runs-on: ubuntu-24.04
env:
WAILS_VERSION: v2.12.0
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.11'
- uses: actions/setup-go@v5
with:
go-version: '1.23'
cache-dependency-path: antra-wails/go.sum
- uses: actions/setup-node@v4
with:
node-version: '18'
- name: Install Python Dependencies
run: pip install -r requirements-desktop.txt
- name: Install Linux GUI Dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
libgtk-3-dev \
libwebkit2gtk-4.1-dev \
build-essential \
pkg-config \
upx \
libfuse2 \
file
- name: Install Wails CLI
run: go install github.com/wailsapp/wails/v2/cmd/wails@${{ env.WAILS_VERSION }}
- name: Build Python Backend
working-directory: antra-wails
run: |
mkdir -p runtime/backend
pyinstaller backend_runtime.spec --distpath runtime/backend --noconfirm
- name: Build Wails App
working-directory: antra-wails
run: wails build -clean -tags webkit2_41
- name: Package as AppImage
run: |
# Download appimagetool
wget -q https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage -O /tmp/appimagetool
chmod +x /tmp/appimagetool
# Find the built binary
BIN=$(find antra-wails/build/bin -maxdepth 1 -type f -executable | head -1)
# Create AppDir structure
mkdir -p AppDir/usr/bin
cp "$BIN" AppDir/usr/bin/Antra
# Desktop entry
printf '[Desktop Entry]\nName=Antra\nExec=Antra\nIcon=Antra\nType=Application\nCategories=AudioVideo;Audio;\n' > AppDir/Antra.desktop
# Icon
cp antra-wails/frontend/src/assets/images/logo-universal.png AppDir/Antra.png
# AppRun — lean launcher, relies on system webkit2gtk-4.1
printf '#!/bin/bash\nexec "$(dirname "$(readlink -f "${0}")")/usr/bin/Antra" "$@"\n' > AppDir/AppRun
chmod +x AppDir/AppRun
# Build the AppImage
ARCH=x86_64 /tmp/appimagetool AppDir Antra-Linux.AppImage
- name: Upload Linux artifact
uses: actions/upload-artifact@v4
with:
name: Antra-Linux
path: Antra-Linux.AppImage
build-macos:
name: Build macOS
runs-on: macos-latest
env:
WAILS_VERSION: v2.12.0
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.11'
- uses: actions/setup-go@v5
with:
go-version: '1.23'
cache-dependency-path: antra-wails/go.sum
- uses: actions/setup-node@v4
with:
node-version: '18'
- name: Install Python Dependencies
run: pip install -r requirements-desktop.txt
- name: Install macOS Dependencies
run: brew install create-dmg upx || true
- name: Install Wails CLI
run: go install github.com/wailsapp/wails/v2/cmd/wails@${{ env.WAILS_VERSION }}
- name: Build Python Backend
working-directory: antra-wails
run: |
mkdir -p runtime/backend
pyinstaller backend_runtime.spec --distpath runtime/backend --noconfirm
- name: Build Wails App
working-directory: antra-wails
run: wails build -clean
- name: Package as DMG
run: |
APP=$(find antra-wails/build/bin -maxdepth 1 -name "*.app" | head -1)
create-dmg \
--volname "Antra" \
--window-pos 200 120 \
--window-size 600 400 \
--icon-size 100 \
--icon "$(basename $APP)" 175 190 \
--hide-extension "$(basename $APP)" \
--app-drop-link 425 190 \
"Antra-macOS.dmg" \
"$APP"
- name: Upload macOS artifact
uses: actions/upload-artifact@v4
with:
name: Antra-macOS
path: Antra-macOS.dmg
build-macos-intel:
name: Build macOS (Intel)
runs-on: macos-15-intel
env:
WAILS_VERSION: v2.12.0
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.11'
- uses: actions/setup-go@v5
with:
go-version: '1.23'
cache-dependency-path: antra-wails/go.sum
- uses: actions/setup-node@v4
with:
node-version: '18'
- name: Install Python Dependencies
run: pip install -r requirements-desktop.txt
- name: Install macOS Dependencies
run: brew install create-dmg upx || true
- name: Install Wails CLI
run: go install github.com/wailsapp/wails/v2/cmd/wails@${{ env.WAILS_VERSION }}
- name: Build Python Backend
working-directory: antra-wails
run: |
mkdir -p runtime/backend
pyinstaller backend_runtime.spec --distpath runtime/backend --noconfirm
- name: Build Wails App
working-directory: antra-wails
run: wails build -clean
- name: Package as DMG
run: |
APP=$(find antra-wails/build/bin -maxdepth 1 -name "*.app" | head -1)
create-dmg \
--volname "Antra" \
--window-pos 200 120 \
--window-size 600 400 \
--icon-size 100 \
--icon "$(basename $APP)" 175 190 \
--hide-extension "$(basename $APP)" \
--app-drop-link 425 190 \
"Antra-macOS-Intel.dmg" \
"$APP"
- name: Upload macOS Intel artifact
uses: actions/upload-artifact@v4
with:
name: Antra-macOS-Intel
path: Antra-macOS-Intel.dmg
release:
name: Upload to Release
needs: [build-windows, build-linux, build-macos, build-macos-intel]
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/') || github.event.inputs.tag != ''
steps:
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
path: dist/
- name: Determine release tag
id: tag
run: |
if [ "${{ github.event.inputs.tag }}" != "" ]; then
echo "tag=${{ github.event.inputs.tag }}" >> $GITHUB_OUTPUT
else
echo "tag=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
fi
- name: Upload to GitHub Release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ steps.tag.outputs.tag }}
body: |
## What's New
- **Spotify Metadata Fixed** — built-in TOTP-based token generation goes directly to Spotify's own API, eliminating reliance on third-party proxies that were offline ([#2](https://github.com/anandprtp/Antra/issues/2), [#9](https://github.com/anandprtp/Antra/issues/9))
- **Amazon Music Fixed** — album and track fetching rewritten to parse schema.org JSON-LD, replacing the broken web-component scraper ([#6](https://github.com/anandprtp/Antra/issues/6))
- **Correct Amazon ASINs** — ASINs now sourced directly from Amazon Music URLs; Odesli runs before the amazon.com scraper, preventing wrong track matches ([#10](https://github.com/anandprtp/Antra/issues/10))
- **Faster Downloads** — Amazon 404 errors no longer trigger 3 retries; skipped instantly ([#10](https://github.com/anandprtp/Antra/issues/10))
- **Version Label** — app version is now shown in the settings panel
- **Community** — join us on [Reddit](https://www.reddit.com/r/antraverse/) · support on [Ko-fi](https://ko-fi.com/antraverse)
## Bug Fixes
- Fixed Spotify metadata fetching when no credentials are configured — SpotFetch proxies were all down, now uses direct TOTP token + Spotify partner API as primary path
- Added multi-mirror failover pool for SpotFetch with instant skip on DNS failures
- Fixed Amazon Music album pages returning "Could not find track listing" after Amazon dropped their web-component elements
- Fixed wrong Amazon ASINs being matched via amazon.com product scraper (e.g. old CD pressings)
- Fixed Amazon source retrying 3× on 404 errors before falling through to the next source
## Downloads
[![Windows](https://img.shields.io/github/downloads/anandprtp/Antra/v1.1.2/Antra.exe?display_name=true&logo=windows&label=Windows&style=for-the-badge&color=0078D6)](https://github.com/anandprtp/Antra/releases/download/v1.1.2/Antra.exe)
[![macOS Apple Silicon](https://img.shields.io/github/downloads/anandprtp/Antra/v1.1.2/Antra-macOS.dmg?display_name=true&logo=apple&label=macOS+Apple+Silicon&style=for-the-badge&color=111111)](https://github.com/anandprtp/Antra/releases/download/v1.1.2/Antra-macOS.dmg)
[![macOS Intel](https://img.shields.io/github/downloads/anandprtp/Antra/v1.1.2/Antra-macOS-Intel.dmg?display_name=true&logo=apple&label=macOS+Intel&style=for-the-badge&color=555555)](https://github.com/anandprtp/Antra/releases/download/v1.1.2/Antra-macOS-Intel.dmg)
[![Linux](https://img.shields.io/github/downloads/anandprtp/Antra/v1.1.2/Antra-Linux.AppImage?display_name=true&logo=linux&label=Linux&style=for-the-badge&color=FCC624&logoColor=black)](https://github.com/anandprtp/Antra/releases/download/v1.1.2/Antra-Linux.AppImage)
## Files
- `Antra.exe`: Windows
- `Antra-Linux.AppImage`: Linux
- `Antra-macOS.dmg`: macOS Apple Silicon
- `Antra-macOS-Intel.dmg`: macOS Intel
<details>
<summary>Linux install</summary>
Download `Antra-Linux.AppImage`, then install the WebKit dependency for your distro:
**Ubuntu/Debian:**
```
sudo apt install libwebkit2gtk-4.1-0
```
**Arch Linux:**
```
sudo pacman -S webkit2gtk-4.1
```
**Fedora:**
```
sudo dnf install webkit2gtk4.1
```
Then make executable and run:
```bash
chmod +x Antra-Linux.AppImage
./Antra-Linux.AppImage
```
If Ubuntu blocks running it from `~/Downloads`, move it first:
```bash
mv ~/Downloads/Antra-Linux.AppImage ~/
cd ~
chmod +x Antra-Linux.AppImage
./Antra-Linux.AppImage
```
</details>
<details>
<summary>macOS install</summary>
Download the DMG for your Mac (`Antra-macOS.dmg` for Apple Silicon, `Antra-macOS-Intel.dmg` for Intel), open it, and drag `Antra` into your `Applications` folder.
On first launch, macOS may block the app with an "Apple could not verify" warning. To open it:
1. Open `Applications`
2. Right-click `Antra`
3. Click `Open`
4. Click `Open` again in the warning dialog
Useful notes for macOS:
- If the app still does not open, go to `System Settings -> Privacy & Security` and click `Open Anyway` if that option appears.
- You may need to move the app out of the DMG and into `Applications` before opening it.
- This build is not notarized yet, so the first-run security prompt is expected.
</details>
files: |
dist/Antra-Windows/Antra.exe
dist/Antra-Linux/Antra-Linux.AppImage
dist/Antra-macOS/Antra-macOS.dmg
dist/Antra-macOS-Intel/Antra-macOS-Intel.dmg
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}