fix: use macos-15-intel runner for Intel build #21
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 | |
| [](https://github.com/anandprtp/Antra/releases/download/v1.1.2/Antra.exe) | |
| [](https://github.com/anandprtp/Antra/releases/download/v1.1.2/Antra-macOS.dmg) | |
| [](https://github.com/anandprtp/Antra/releases/download/v1.1.2/Antra-macOS-Intel.dmg) | |
| [](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 }} |