mirror of
https://github.com/FluxaMedia/fluxa-desktop.git
synced 2026-08-07 09:18:52 +00:00
The KhooLy/mpv fork's libmpv.so.2 links libass, libavfilter, and libplacebo (needed for the gpu-next render path) -- none of which were in the apt install list, so the post-fetch ldd check failed.
209 lines
8.4 KiB
YAML
209 lines
8.4 KiB
YAML
name: Build
|
|
|
|
on:
|
|
push:
|
|
tags: ["v*"]
|
|
workflow_dispatch:
|
|
|
|
# libmpv comes from KhooLy/mpv -- see that repo's FORK.md.
|
|
env:
|
|
MPV_FORK_TAG: "v0.41.0-gpu-next.5"
|
|
NODE_VERSION: "22"
|
|
RUST_VERSION: "stable"
|
|
|
|
permissions:
|
|
contents: write
|
|
|
|
jobs:
|
|
# ═══════════════════════════════════════════════════════════════════════════
|
|
# WINDOWS
|
|
# libmpv + its MSYS2 runtime deps come prebuilt from KhooLy/mpv.
|
|
# ═══════════════════════════════════════════════════════════════════════════
|
|
build-windows:
|
|
runs-on: windows-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
repository: KhooLy/fluxa-core
|
|
path: fluxa-core
|
|
- name: Link sibling repos
|
|
shell: bash
|
|
run: |
|
|
PARENT="$(dirname "$GITHUB_WORKSPACE")"
|
|
cmd //c mklink //J "$PARENT\\fluxa-core" "$GITHUB_WORKSPACE\\fluxa-core"
|
|
|
|
- name: Set up Node
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: ${{ env.NODE_VERSION }}
|
|
cache: npm
|
|
|
|
- name: Set up Rust
|
|
uses: dtolnay/rust-toolchain@master
|
|
with:
|
|
toolchain: ${{ env.RUST_VERSION }}
|
|
|
|
- name: Cache Rust build
|
|
uses: Swatinem/rust-cache@v2
|
|
with:
|
|
workspaces: src-tauri
|
|
|
|
- name: Fetch libmpv (KhooLy/mpv gpu-next fork)
|
|
shell: bash
|
|
run: ./src-tauri/fetch-libmpv.sh "${{ env.MPV_FORK_TAG }}"
|
|
|
|
- name: npm install
|
|
run: npm ci
|
|
|
|
- name: Build Tauri (Windows installer)
|
|
uses: tauri-apps/tauri-action@v0
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
|
|
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
|
|
FLUXA_TRAKT_CLIENT_ID: ${{ secrets.FLUXA_TRAKT_CLIENT_ID }}
|
|
FLUXA_TRAKT_CLIENT_SECRET: ${{ secrets.FLUXA_TRAKT_CLIENT_SECRET }}
|
|
FLUXA_MAL_CLIENT_ID: ${{ secrets.FLUXA_MAL_CLIENT_ID }}
|
|
FLUXA_SIMKL_CLIENT_ID: ${{ secrets.FLUXA_SIMKL_CLIENT_ID }}
|
|
FLUXA_SIMKL_CLIENT_SECRET: ${{ secrets.FLUXA_SIMKL_CLIENT_SECRET }}
|
|
FLUXA_NUVIO_SUPABASE_URL: ${{ secrets.FLUXA_NUVIO_SUPABASE_URL }}
|
|
FLUXA_NUVIO_SUPABASE_KEY: ${{ secrets.FLUXA_NUVIO_SUPABASE_KEY }}
|
|
with:
|
|
tagName: ${{ github.ref_name }}
|
|
releaseName: "Fluxa Desktop ${{ github.ref_name }}"
|
|
releaseDraft: false
|
|
generateReleaseNotes: true
|
|
args: --target x86_64-pc-windows-msvc
|
|
|
|
# ═══════════════════════════════════════════════════════════════════════════
|
|
# macOS
|
|
# libmpv comes prebuilt from KhooLy/mpv, already dylibbundler'd.
|
|
# ═══════════════════════════════════════════════════════════════════════════
|
|
build-macos:
|
|
runs-on: macos-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
repository: KhooLy/fluxa-core
|
|
path: fluxa-core
|
|
- name: Link sibling repos
|
|
run: ln -sfn "$GITHUB_WORKSPACE/fluxa-core" "$(dirname "$GITHUB_WORKSPACE")/fluxa-core"
|
|
|
|
- name: Set up Node
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: ${{ env.NODE_VERSION }}
|
|
cache: npm
|
|
|
|
- name: Set up Rust
|
|
uses: dtolnay/rust-toolchain@master
|
|
with:
|
|
toolchain: ${{ env.RUST_VERSION }}
|
|
targets: aarch64-apple-darwin,x86_64-apple-darwin
|
|
|
|
- name: Cache Rust build
|
|
uses: Swatinem/rust-cache@v2
|
|
with:
|
|
workspaces: src-tauri
|
|
|
|
- name: Fetch libmpv (KhooLy/mpv gpu-next fork)
|
|
run: ./src-tauri/fetch-libmpv.sh "${{ env.MPV_FORK_TAG }}"
|
|
|
|
- name: npm install
|
|
run: npm ci
|
|
|
|
- name: Build Tauri (macOS DMG — universal binary)
|
|
uses: tauri-apps/tauri-action@v0
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
|
|
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
|
|
FLUXA_TRAKT_CLIENT_ID: ${{ secrets.FLUXA_TRAKT_CLIENT_ID }}
|
|
FLUXA_TRAKT_CLIENT_SECRET: ${{ secrets.FLUXA_TRAKT_CLIENT_SECRET }}
|
|
FLUXA_MAL_CLIENT_ID: ${{ secrets.FLUXA_MAL_CLIENT_ID }}
|
|
FLUXA_SIMKL_CLIENT_ID: ${{ secrets.FLUXA_SIMKL_CLIENT_ID }}
|
|
FLUXA_SIMKL_CLIENT_SECRET: ${{ secrets.FLUXA_SIMKL_CLIENT_SECRET }}
|
|
FLUXA_NUVIO_SUPABASE_URL: ${{ secrets.FLUXA_NUVIO_SUPABASE_URL }}
|
|
FLUXA_NUVIO_SUPABASE_KEY: ${{ secrets.FLUXA_NUVIO_SUPABASE_KEY }}
|
|
with:
|
|
tagName: ${{ github.ref_name }}
|
|
releaseName: "Fluxa Desktop ${{ github.ref_name }}"
|
|
releaseDraft: false
|
|
generateReleaseNotes: true
|
|
args: --target universal-apple-darwin
|
|
|
|
# ═══════════════════════════════════════════════════════════════════════════
|
|
# LINUX
|
|
# libmpv comes prebuilt from KhooLy/mpv (built on ubuntu-24.04, must match).
|
|
# ═══════════════════════════════════════════════════════════════════════════
|
|
build-linux:
|
|
runs-on: ubuntu-24.04
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
repository: KhooLy/fluxa-core
|
|
path: fluxa-core
|
|
- name: Link sibling repos
|
|
run: ln -sfn "$GITHUB_WORKSPACE/fluxa-core" "$(dirname "$GITHUB_WORKSPACE")/fluxa-core"
|
|
|
|
- name: Set up Node
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: ${{ env.NODE_VERSION }}
|
|
cache: npm
|
|
|
|
- name: Set up Rust
|
|
uses: dtolnay/rust-toolchain@master
|
|
with:
|
|
toolchain: ${{ env.RUST_VERSION }}
|
|
|
|
- name: Cache Rust build
|
|
uses: Swatinem/rust-cache@v2
|
|
with:
|
|
workspaces: src-tauri
|
|
|
|
- name: Install system dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y \
|
|
libavcodec-dev libavformat-dev libavutil-dev \
|
|
libswscale-dev libswresample-dev libavfilter-dev \
|
|
libass9 libplacebo-dev \
|
|
pkg-config \
|
|
libwebkit2gtk-4.1-dev libgtk-3-dev \
|
|
libayatana-appindicator3-dev librsvg2-dev \
|
|
patchelf
|
|
|
|
- name: Fetch libmpv (KhooLy/mpv gpu-next fork)
|
|
run: ./src-tauri/fetch-libmpv.sh "${{ env.MPV_FORK_TAG }}"
|
|
|
|
- name: Verify libmpv.so is intact
|
|
run: |
|
|
ldd src-tauri/lib/libmpv.so.2 | grep 'not found' && exit 1 || true
|
|
echo "OK: all libmpv deps resolvable on this runner"
|
|
|
|
- name: npm install
|
|
run: npm ci
|
|
|
|
- name: Build Tauri (AppImage + deb)
|
|
uses: tauri-apps/tauri-action@v0
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
|
|
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
|
|
FLUXA_TRAKT_CLIENT_ID: ${{ secrets.FLUXA_TRAKT_CLIENT_ID }}
|
|
FLUXA_TRAKT_CLIENT_SECRET: ${{ secrets.FLUXA_TRAKT_CLIENT_SECRET }}
|
|
FLUXA_MAL_CLIENT_ID: ${{ secrets.FLUXA_MAL_CLIENT_ID }}
|
|
FLUXA_SIMKL_CLIENT_ID: ${{ secrets.FLUXA_SIMKL_CLIENT_ID }}
|
|
FLUXA_SIMKL_CLIENT_SECRET: ${{ secrets.FLUXA_SIMKL_CLIENT_SECRET }}
|
|
FLUXA_NUVIO_SUPABASE_URL: ${{ secrets.FLUXA_NUVIO_SUPABASE_URL }}
|
|
FLUXA_NUVIO_SUPABASE_KEY: ${{ secrets.FLUXA_NUVIO_SUPABASE_KEY }}
|
|
with:
|
|
tagName: ${{ github.ref_name }}
|
|
releaseName: "Fluxa Desktop ${{ github.ref_name }}"
|
|
releaseDraft: false
|
|
generateReleaseNotes: true
|
|
args: --target x86_64-unknown-linux-gnu
|