Skip to content

fix(webos): update mpv audio reset handling #15

fix(webos): update mpv audio reset handling

fix(webos): update mpv audio reset handling #15

name: build artifacts
on:
push:
branches: [master]
pull_request:
workflow_dispatch:
inputs:
webos_toolchain_archive_url:
description: "Optional tar archive containing build/webos-sdk and Qt webOS prefixes"
required: false
type: string
jobs:
webos-ipk:
name: webOS IPK
runs-on: ubuntu-24.04
if: ${{ vars.WEBOS_TOOLCHAIN_ARCHIVE_URL != '' || (github.event_name == 'workflow_dispatch' && github.event.inputs.webos_toolchain_archive_url != '') }}
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: nixbuild/nix-quick-install-action@v30
with:
nix_conf: |
experimental-features = nix-command flakes
keep-env-derivations = true
keep-outputs = true
- uses: nix-community/cache-nix-action@v7
with:
primary-key: nix-${{ runner.os }}-${{ hashFiles('flake.lock') }}
restore-prefixes-first-match: nix-${{ runner.os }}-
gc-max-store-size-linux: 8G
gc-max-store-size-macos: 8G
- uses: actions/cache@v4
with:
path: |
build/webos-sdk
build/qt6-611-host-install
build/qt6-611-target-static-install
build/qt6-611-target-install
build/webos-thirdparty-build
build/third_party
.ccache
mpv/build/webos-libmpv
key: webos-${{ runner.os }}-${{ hashFiles('mpv/meson.build', 'build-ipk.sh', 'tools/webos-native/**') }}
restore-keys: |
webos-${{ runner.os }}-
- name: Restore webOS toolchain archive
env:
INPUT_URL: ${{ github.event.inputs.webos_toolchain_archive_url }}
VAR_URL: ${{ vars.WEBOS_TOOLCHAIN_ARCHIVE_URL }}
run: |
url="${INPUT_URL:-$VAR_URL}"
if [ -n "$url" ] && [ ! -x build/webos-sdk/arm-webos-linux-gnueabi_sdk-buildroot/bin/arm-webos-linux-gnueabi-gcc ]; then
curl -L --fail "$url" | tar xz
fi
test -x build/webos-sdk/arm-webos-linux-gnueabi_sdk-buildroot/bin/arm-webos-linux-gnueabi-gcc
test -d build/qt6-611-host-install
test -d build/qt6-611-target-static-install -o -d build/qt6-611-target-install
- name: Build IPK
run: nix develop -c bash build-ipk.sh
- uses: actions/upload-artifact@v4
with:
name: jellyfin-native-webos-ipk
path: build/*.ipk
linux-appimage:
name: Linux AppImage
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: nixbuild/nix-quick-install-action@v30
with:
nix_conf: |
experimental-features = nix-command flakes
keep-env-derivations = true
keep-outputs = true
- uses: nix-community/cache-nix-action@v7
with:
primary-key: nix-${{ runner.os }}-${{ hashFiles('flake.lock') }}
restore-prefixes-first-match: nix-${{ runner.os }}-
gc-max-store-size-linux: 8G
- uses: actions/cache@v4
with:
path: |
.ccache
build/linux-release
build/appimage
key: linux-${{ runner.os }}-${{ hashFiles('mpv/meson.build', 'tools/build-linux-release.sh', 'CMakeLists.txt') }}
restore-keys: |
linux-${{ runner.os }}-
- name: Build host app
run: nix develop -c bash tools/build-linux-release.sh
- name: Package AppImage
run: nix develop -c bash tools/package-appimage.sh
- uses: actions/upload-artifact@v4
with:
name: jellyfin-native-linux-appimage
path: dist/*.AppImage
macos-dmg:
name: macOS DMG
runs-on: macos-14
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: nixbuild/nix-quick-install-action@v30
with:
nix_conf: |
experimental-features = nix-command flakes
keep-env-derivations = true
keep-outputs = true
- uses: nix-community/cache-nix-action@v7
with:
primary-key: nix-${{ runner.os }}-${{ hashFiles('flake.lock') }}
restore-prefixes-first-match: nix-${{ runner.os }}-
gc-max-store-size-macos: 8G
- uses: actions/cache@v4
with:
path: |
build/macos
~/Library/Caches/ccache
key: macos-${{ runner.os }}-${{ hashFiles('mpv/meson.build', 'tools/build-macos.sh', 'CMakeLists.txt') }}
restore-keys: |
macos-${{ runner.os }}-
- name: Build macOS app
run: nix develop -c bash tools/build-macos.sh
- name: Package DMG
run: nix develop -c bash tools/package-macos-dmg.sh
- uses: actions/upload-artifact@v4
with:
name: jellyfin-native-macos-dmg
path: dist/*.dmg