123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
- name: build
- on:
- push:
- branches:
- - release
- - prerelease
- - test
- jobs:
- build-mac:
- runs-on: macos-11
- steps:
- - uses: actions/checkout@v2
- - 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@v2
- with:
- name: macos
- path: ${{ github.workspace }}/JellyfinMediaPlayer.dmg
-
- build-win64:
- runs-on: windows-latest
- steps:
- - uses: actions/checkout@v2
- - 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/iwalton3/mpv-winbuild-cmake/releases/download/v20230304-git-362256e/mpv-dev-x86_64-20230304-git-362256e.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@v2
- with:
- name: windows
- path: ${{ github.workspace }}/build/JellyfinMediaPlayer-*.exe
- build-win32:
- runs-on: windows-latest
- steps:
- - uses: actions/checkout@v2
- - 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/iwalton3/mpv-winbuild-cmake/releases/download/v20230304-git-362256e/mpv-dev-i686-20230304-git-362256e.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@v2
- 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@v2
- - 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@v2
- 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@v2
- - 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@v2
- with:
- name: debian-${{ matrix.tag }}
- path: ${{ github.workspace }}/deployment/dist/*
|