Merge pull request #1 from Xameon42/master #1
This file contains 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: 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@v4 | |
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@v4 | |
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@v4 | |
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@v4 | |
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@v4 | |
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@v4 | |
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@v4 | |
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@v4 | |
with: | |
name: debian-${{ matrix.tag }} | |
path: ${{ github.workspace }}/deployment/dist/* |