diff options
Diffstat (limited to '.github/workflows/build.yml')
-rw-r--r-- | .github/workflows/build.yml | 70 |
1 files changed, 29 insertions, 41 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 280874bb95..54dfc80bc1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,6 +10,8 @@ on: - 'DOCS/**' - 'TOOLS/lua/**' - '.editorconfig' + - '.github/ISSUE_TEMPLATE/**' + - '.github/PULL_REQUEST_TEMPLATE' - '.gitignore' - 'Copyright' - 'README.md' @@ -20,6 +22,8 @@ on: - 'DOCS/**' - 'TOOLS/lua/**' - '.editorconfig' + - '.github/ISSUE_TEMPLATE/**' + - '.github/PULL_REQUEST_TEMPLATE' - '.gitignore' - 'Copyright' - 'README.md' @@ -32,14 +36,14 @@ jobs: CCACHE_BASEDIR: ${{ github.workspace }} CCACHE_DIR: ${{ github.workspace }}/.ccache CCACHE_MAXSIZE: 500M - WINE: ${{ matrix.wine }} strategy: fail-fast: false matrix: include: - target: i686-w64-mingw32 + wine: wine32 - target: x86_64-w64-mingw32 - wine: wine + wine: wine64 steps: - uses: actions/checkout@v4 @@ -54,18 +58,11 @@ jobs: key: ${{ matrix.target }}-${{ steps.get_time.outputs.timestamp }} restore-keys: ${{ matrix.target }}- - # For LuaJIT build - - name: Enable multilib - if: ${{ matrix.target == 'i686-w64-mingw32' }} - run: | - sudo dpkg --add-architecture i386 - sudo apt-get update - sudo apt-get install -y gcc-multilib - - name: Install dependencies run: | + sudo dpkg --add-architecture i386 sudo apt-get update - sudo apt-get install -y ccache g++-mingw-w64 meson nasm ninja-build pkg-config ${{ matrix.wine }} + sudo apt-get install -y ccache g++-mingw-w64 gcc-multilib meson nasm ninja-build pkg-config ${{ matrix.wine }} - name: Install Meson Wraps run: | @@ -91,14 +88,12 @@ jobs: cat ./mingw_build/meson-logs/meson-log.txt - name: Functional test - if: ${{ matrix.wine }} run: | cd artifact && wine ./mpv.com -v --no-config env: WINEDEBUG: '+loaddll' - name: Run meson tests - if: ${{ matrix.wine }} id: tests run: | meson test -C mingw_build @@ -152,14 +147,10 @@ jobs: key: x86_64-windows-msvc-${{ steps.get_time.outputs.timestamp }} restore-keys: x86_64-windows-msvc- - # https://github.com/mesonbuild/meson/pull/11715 - name: Install dependencies run: | - git clone https://github.com/kasper93/meson --depth 1 -b 8981 - python -m pip install build wheel - python -m build --wheel --no-isolation meson - python -m pip install (Get-Item ./meson/dist/meson-*-py3-none-any.whl).FullName - choco install ccache + python -m pip install meson + choco install ccache nasm - name: Update Meson WrapDB run: | @@ -175,6 +166,7 @@ jobs: run: | $env:PATH = ($env:PATH -split ';' | Where-Object { $_ -ne 'C:\Program Files\LLVM\bin' -and ` $_ -ne 'C:\Strawberry\c\bin' }) -join ';' + $env:PATH += ';C:\Program Files\NASM' Import-Module "$env:VS\Common7\Tools\Microsoft.VisualStudio.DevShell.dll" Enter-VsDevShell -VsInstallPath $env:VS -SkipAutomaticLocation -DevCmdArguments "-arch=x64 -host_arch=x64" ./ci/build-win32.ps1 @@ -222,17 +214,17 @@ jobs: cxx: - "clang++" os: - - "macos-12" - "macos-13" - "macos-14" + - "macos-15" include: - - os: "macos-12" - arch: "intel" - os: "macos-13" arch: "intel" - os: "macos-14" arch: "arm" xcode: "Xcode_15.2" + - os: "macos-15" + arch: "arm" steps: - uses: actions/checkout@v4 @@ -293,6 +285,7 @@ jobs: env: CC: "${{ matrix.config.cc }}" CXX: "${{ matrix.config.cxx }}" + ASAN_OPTIONS: "halt_on_error=1:abort_on_error=1:print_summary=1:detect_leaks=0" strategy: matrix: config: @@ -307,11 +300,6 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Install dependencies - run: | - # workaround to avoid "fatal: unsafe repository" error - git config --global --add safe.directory "$GITHUB_WORKSPACE" - - name: Build with meson id: build run: | @@ -349,20 +337,20 @@ jobs: --werror \ -Dc_args="-Wno-error=deprecated -Wno-error=deprecated-declarations" \ -Dfuzzers=true -Dlibmpv=true -Dcplayer=false - meson compile -C build + meson compile -C build fuzzers - name: Print meson log if: ${{ failure() && steps.build.outcome == 'failure' }} run: | cat ./build/meson-logs/meson-log.txt - linux-ffmpeg-4-4: + linux-ffmpeg-6-1: runs-on: ubuntu-latest container: - # We want to test ffmpeg 4.4 which alpine 3.15 has exactly. + # We want to test ffmpeg 6.1.1 which alpine 3.19 has exactly. # Furthermore, this is a very minimal build of mpv without commonly # used features to test build compatibility. Musl is a nice bonus as well - image: alpine:3.15 + image: alpine:3.19 steps: - uses: actions/checkout@v4 - name: Install dependencies @@ -383,15 +371,14 @@ jobs: libxrandr-dev \ libxpresent-dev \ libxscrnsaver-dev \ + meson \ musl-dev \ - py3-pip \ samurai - pip install meson - name: Build with meson id: build run: | - ./ci/build-linux-old.sh + ./ci/build-linux-old.sh - name: Print meson log if: ${{ failure() && steps.build.outcome == 'failure' }} @@ -414,10 +401,10 @@ jobs: steps: - uses: actions/checkout@v4 - name: Test in OpenBSD VM - uses: cross-platform-actions/action@v0.23.0 + uses: cross-platform-actions/action@v0.25.0 with: operating_system: openbsd - version: '7.4' + version: '7.5' run: | sudo pkg_add -U \ cmake \ @@ -429,6 +416,7 @@ jobs: libcdio-paranoia \ libdvdnav \ libiconv \ + libplacebo \ libv4l \ libxkbcommon \ luajit \ @@ -455,10 +443,10 @@ jobs: steps: - uses: actions/checkout@v4 - name: Test in FreeBSD VM - uses: cross-platform-actions/action@v0.23.0 + uses: cross-platform-actions/action@v0.25.0 with: operating_system: freebsd - version: '14.0' + version: '14.1' run: | sudo pkg update sudo pkg install -y \ @@ -474,6 +462,7 @@ jobs: libcaca \ libcdio-paranoia \ libdvdnav \ + libdisplay-info \ libplacebo \ libXinerama \ libxkbcommon \ @@ -504,7 +493,6 @@ jobs: fail-fast: false matrix: sys: - - clang32 - clang64 - mingw32 - mingw64 @@ -547,9 +535,9 @@ jobs: vulkan-devel:p - name: Install dependencies - if: ${{ matrix.sys != 'clang32' && matrix.sys != 'mingw32' }} + if: ${{ matrix.sys != 'mingw32' }} run: | - pacboy --noconfirm -S {angleproject,rst2pdf,rubberband}:p + pacboy --noconfirm -S {angleproject,cppwinrt,rst2pdf,rubberband}:p - name: Build with meson id: build |