Skip to content

Switch back to upstream MPV. #123

Switch back to upstream MPV.

Switch back to upstream MPV. #123

Workflow file for this run

name: build
on:
push:
branches:
- release
- prerelease
- test
jobs:
build-mac:
runs-on: macos-11
steps:
- uses: actions/checkout@v4
- name: Install Qt 5.15.2
uses: jurplel/install-qt-action@v3
with:
version: "5.15.2"
modules: "qtwebengine"
setup-python: 'false'
- name: Install dependencies
run: |
brew update
brew install ninja mpv || true
- name: Release build
run: |
./download_webclient.sh
cd build
cmake -GNinja -DQTROOT=$Qt5_DIR -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=output ..
ninja install
- name: Fix library paths and create dmg
run: |
python3 ./scripts/fix-install-names.py ./build/output/Jellyfin\ Media\ Player.app
brew install create-dmg
create-dmg --volname "Jellyfin Media Player" --no-internet-enable "JellyfinMediaPlayer.dmg" "./build/output/Jellyfin Media Player.app"
- name: Archive production artifacts
uses: actions/upload-artifact@v3
with:
name: macos
path: ${{ github.workspace }}/JellyfinMediaPlayer.dmg
build-win64:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Install Qt 5.15.2
uses: jurplel/install-qt-action@v3
with:
version: "5.15.2"
arch: "win64_msvc2019_64"
modules: "qtwebengine"
- name: Install dependencies
run: |
./download_webclient.sh
curl -L https://aka.ms/vs/17/release/vc_redist.x64.exe > vc_redist.x64.exe
sed -i 's#C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\VC\\Redist\\MSVC\\v142\\vcredist_x64.exe#'"$(readlink -f vc_redist.x64.exe | sed 's#/\([a-z]\)/#\1:\\#g' | tr '/' '\\' | sed 's/\\/\\\\/g')#g" bundle/win/Bundle.wxs
curl -L https://github.com/ninja-build/ninja/releases/download/v1.10.2/ninja-win.zip > ninja.zip
unzip ninja.zip
mv ninja.exe build/
curl -L https://github.com/shinchiro/mpv-winbuild-cmake/releases/download/20231215/mpv-dev-x86_64-20231215-git-e9d0a31.7z > mpv.7z
7z x mpv.7z
mkdir mpv
mv include mpv
mv libmpv-2.dll mpv/mpv.dll
echo "LIBRARY MPV" > mpv.def.fixed
echo "EXPORTS" >> mpv.def.fixed
cat mpv.def >> mpv.def.fixed
mv mpv.def.fixed mpv.def
mv mpv.def libmpv.dll.a mpv/
mv mpv build/
shell: bash
- name: Build
run: |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
cd build
set PATH=%PATH%;C:\Program Files (x86)\WiX Toolset v3.11\bin;%CD%
cmake -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=output -DCMAKE_MAKE_PROGRAM=ninja.exe -DQTROOT=%Qt5_DIR% -DMPV_INCLUDE_DIR=mpv/include -DMPV_LIBRARY=mpv/mpv.dll -DCMAKE_INSTALL_PREFIX=output ..
lib /def:mpv\mpv.def /out:mpv\mpv.dll.lib /MACHINE:X64
ninja
ninja windows_package
shell: cmd
- name: Archive production artifacts
uses: actions/upload-artifact@v3
with:
name: windows
path: ${{ github.workspace }}/build/JellyfinMediaPlayer-*.exe
build-win32:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Install Qt 5.15.2
uses: jurplel/install-qt-action@v3
with:
version: "5.15.2"
arch: "win32_msvc2019"
modules: "qtwebengine"
- name: Install dependencies
run: |
./download_webclient.sh
curl -L https://aka.ms/vs/17/release/vc_redist.x86.exe > vc_redist.x86.exe
sed -i 's#C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\VC\\Redist\\MSVC\\v142\\vcredist_x64.exe#'"$(readlink -f vc_redist.x86.exe | sed 's#/\([a-z]\)/#\1:\\#g' | tr '/' '\\' | sed 's/\\/\\\\/g')#g" bundle/win/Bundle.wxs
curl -L https://github.com/ninja-build/ninja/releases/download/v1.10.2/ninja-win.zip > ninja.zip
unzip ninja.zip
mv ninja.exe build/
curl -L https://github.com/shinchiro/mpv-winbuild-cmake/releases/download/20231215/mpv-dev-i686-20231215-git-e9d0a31.7z > mpv.7z
7z x mpv.7z
mkdir mpv
mv include mpv
mv libmpv-2.dll mpv/mpv.dll
echo "LIBRARY MPV" > mpv.def.fixed
echo "EXPORTS" >> mpv.def.fixed
cat mpv.def >> mpv.def.fixed
mv mpv.def.fixed mpv.def
mv mpv.def libmpv.dll.a mpv/
mv mpv build/
shell: bash
- name: Build
run: |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars32.bat"
cd build
set PATH=%PATH%;C:\Program Files (x86)\WiX Toolset v3.11\bin;%CD%
cmake -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=output -DCMAKE_MAKE_PROGRAM=ninja.exe -DQTROOT=%Qt5_DIR% -DMPV_INCLUDE_DIR=mpv/include -DMPV_LIBRARY=mpv/mpv.dll -DCMAKE_INSTALL_PREFIX=output ..
lib /def:mpv\mpv.def /out:mpv\mpv.dll.lib /MACHINE:X86
ninja
ninja windows_package
shell: cmd
- name: Archive production artifacts
uses: actions/upload-artifact@v3
with:
name: windows-legacy32
path: ${{ github.workspace }}/build/JellyfinMediaPlayer-*.exe
build-ubuntu:
strategy:
matrix:
tag: [kinetic, jammy, focal]
runs-on: "ubuntu-latest"
steps:
- uses: actions/checkout@v4
- name: Docker Build
run: |
docker build -f deployment/Dockerfile.debian -t builddeb --build-arg TAG=${{ matrix.tag }} --build-arg IMG=ubuntu deployment
docker run -v $(pwd)/deployment/dist:/dist -v $(pwd):/jellyfin -e TAG=${{ matrix.tag }} builddeb
- name: Archive production artifacts
uses: actions/upload-artifact@v3
with:
name: ubuntu-${{ matrix.tag }}
path: ${{ github.workspace }}/deployment/dist/*
build-debian:
strategy:
matrix:
tag: [bullseye, bookworm]
runs-on: "ubuntu-latest"
steps:
- uses: actions/checkout@v4
- name: Docker Build
run: |
docker build -f deployment/Dockerfile.debian -t builddeb --build-arg TAG=${{ matrix.tag }} deployment
docker run -v $(pwd)/deployment/dist:/dist -v $(pwd):/jellyfin -e TAG=${{ matrix.tag }} builddeb
- name: Archive production artifacts
uses: actions/upload-artifact@v3
with:
name: debian-${{ matrix.tag }}
path: ${{ github.workspace }}/deployment/dist/*