This repository was archived by the owner on Mar 28, 2026. It is now read-only.
Add code coverage as PR comment (#1162) #44
This file contains hidden or 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-windows | |
| env: | |
| MPV_VERSION: "20251214-git-f7be2ee" | |
| # using older version due to severe memory leak | |
| # https://qt-project.atlassian.net/browse/QTBUG-141377 | |
| QT_VERSION: "6.9.3" | |
| on: | |
| workflow_call: | |
| workflow_dispatch: | |
| push: | |
| branches: | |
| - master | |
| jobs: | |
| build: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - artifact: windows-x64 | |
| qt_arch: win64_msvc2022_64 | |
| mpv_arch: x86_64-v3 | |
| mpv_arch_fallback: x86_64 | |
| vc_redist_arch: x64 | |
| vcvars: vcvars64.bat | |
| machine: X64 | |
| # ARM64 disabled - requires qt webengine builds | |
| # - artifact: windows-arm64 | |
| # qt_arch: win64_msvc2022_arm64 | |
| # mpv_arch: aarch64 | |
| # mpv_arch_fallback: "" | |
| # vc_redist_arch: arm64 | |
| # vcvars: vcvarsamd64_arm64.bat | |
| # machine: ARM64 | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| submodules: recursive | |
| - name: Install Qt 6 | |
| uses: jurplel/install-qt-action@v4 | |
| with: | |
| version: "${{ env.QT_VERSION }}" | |
| arch: "${{ matrix.qt_arch }}" | |
| modules: "qtwebengine qtwebchannel qtpositioning" | |
| - name: Install Inno Setup | |
| run: | | |
| choco install innosetup -y | |
| shell: powershell | |
| - name: Install dependencies | |
| run: | | |
| mkdir build | |
| curl -L https://sourceforge.net/projects/mpv-player-windows/files/libmpv/mpv-dev-${{ matrix.mpv_arch }}-${{ env.MPV_VERSION }}.7z/download > mpv.7z | |
| 7z x mpv.7z | |
| mkdir mpv | |
| mv include mpv | |
| gendef libmpv-2.dll | |
| mv libmpv-2.dll mpv/libmpv-2.dll | |
| mv libmpv-2.def mpv.def | |
| mv mpv.def libmpv.dll.a mpv/ | |
| mv mpv build/ | |
| if [ -n "${{ matrix.mpv_arch_fallback }}" ]; then | |
| curl -L https://sourceforge.net/projects/mpv-player-windows/files/libmpv/mpv-dev-${{ matrix.mpv_arch_fallback }}-${{ env.MPV_VERSION }}.7z/download > mpv-fallback.7z | |
| 7z x mpv-fallback.7z -ompv-fallback-tmp | |
| mkdir build/mpv-fallback | |
| mv mpv-fallback-tmp/libmpv-2.dll build/mpv-fallback/ | |
| fi | |
| shell: bash | |
| - name: Bundle VC runtime DLLs | |
| run: | | |
| mkdir deps | |
| mkdir deps/vcruntime | |
| # Copy from VS 2022 Enterprise installation on runner | |
| $vsRedist = Get-ChildItem "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Redist\MSVC\*\x64\Microsoft.VC143.CRT" | Select-Object -First 1 | |
| Copy-Item "$vsRedist\*.dll" deps/vcruntime/ | |
| # Also grab VCRedist installer for optional system-wide install | |
| Invoke-WebRequest -Uri "https://aka.ms/vs/17/release/vc_redist.x64.exe" -OutFile deps/vc_redist.x64.exe | |
| shell: powershell | |
| - name: Build | |
| run: | | |
| call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\${{ matrix.vcvars }}" | |
| cd build | |
| set PATH=%PATH%;C:\Program Files (x86)\Inno Setup 6;%CD% | |
| cmake -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=output -DQTROOT=%QT_ROOT_DIR% -DMPV_INCLUDE_DIR=mpv/include -DMPV_LIBRARY=mpv/libmpv-2.dll -DCHECK_FOR_UPDATES=ON -DUSE_STATIC_MPVQT=ON .. | |
| lib /def:mpv\mpv.def /out:mpv\libmpv-2.dll.lib /MACHINE:${{ matrix.machine }} | |
| ninja | |
| ninja windows_all | |
| shell: cmd | |
| - name: Archive installer | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: ${{ matrix.artifact }}-installer | |
| path: ${{ github.workspace }}/build/JellyfinDesktop-*.exe | |
| - name: Archive portable ZIP | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: ${{ matrix.artifact }}-portable | |
| path: ${{ github.workspace }}/build/JellyfinDesktop-*.zip |