From b52a22b7c53f0547ac264cc07f07cb15c73d65b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kacper=20Michaj=C5=82ow?= Date: Sun, 19 May 2024 14:25:15 +0200 Subject: [PATCH] test --- .github/workflows/build.yml | 481 +----------------------------------- 1 file changed, 3 insertions(+), 478 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2d4afe3d4818e..47184357548ee 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -37,8 +37,6 @@ jobs: matrix: target: [i686-w64-mingw32, x86_64-w64-mingw32] steps: - - uses: actions/checkout@v4 - - name: Get time id: get_time run: echo "timestamp=`date +%s%N`" >> $GITHUB_OUTPUT @@ -49,479 +47,6 @@ jobs: key: ${{ matrix.target }}-${{ steps.get_time.outputs.timestamp }} restore-keys: ${{ matrix.target }}- - - name: Install dependencies - run: | - sudo dpkg --add-architecture i386 - sudo apt-get update - sudo apt-get install -y autoconf automake pkg-config g++-mingw-w64 gcc-multilib python3-pip ninja-build nasm wine wine32 wine64 ccache - sudo python3 -m pip install meson - - - name: Build libraries - run: | - ./ci/build-mingw64.sh - env: - TARGET: ${{ matrix.target }} - - - name: Build with meson - id: build - run: | - ./ci/build-mingw64.sh meson pack - env: - TARGET: ${{ matrix.target }} - - - name: Print meson log - if: ${{ failure() && steps.build.outcome == 'failure' }} - run: | - cat ./build/meson-logs/meson-log.txt - - - name: Functional test - id: tests - run: | - cd artifact && wine64 ./mpv.com -v --no-config - env: - WINEDEBUG: '+loaddll' - - - uses: actions/upload-artifact@v4 - with: - name: mpv-${{ matrix.target }} - path: mpv-git-*.zip - - win32: - runs-on: windows-latest - env: - VS: "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise" - CC: "ccache clang" - CXX: "ccache clang++" - CC_LD: "lld" - CXX_LD: "lld" - WINDRES: "llvm-rc" - CCACHE_BASEDIR: ${{ github.workspace }} - CCACHE_DIR: "${{ github.workspace }}\\.ccache" - CCACHE_MAXSIZE: 500M - steps: - - name: Disable autocrlf - run: | - git config --global core.autocrlf false - git config --global core.eol lf - - - uses: actions/checkout@v4 - - - name: Get time - id: get_time - run: | - "timestamp=$((Get-Date).Ticks)" >> $env:GITHUB_OUTPUT - - - uses: actions/cache@v4 - with: - path: ${{ env.CCACHE_DIR }} - 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 - - - name: Update Meson WrapDB - run: | - meson wrap update-db - # Explicitly download wraps, as nested projects may have older versions of them. - meson wrap install expat - meson wrap install harfbuzz - meson wrap install libpng - meson wrap install zlib - - - name: Build - id: build - run: | - $env:PATH = ($env:PATH -split ';' | Where-Object { $_ -ne 'C:\Program Files\LLVM\bin' -and ` - $_ -ne 'C:\Strawberry\c\bin' }) -join ';' - 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 - - - name: Print build log - if: ${{ failure() && steps.build.outcome == 'failure' }} - run: | - cat ./build/meson-logs/meson-log.txt - - - name: Run meson tests - id: tests - run: | - $env:PATH = ($env:PATH -split ';' | Where-Object { $_ -ne 'C:\Program Files\LLVM\bin' -and ` - $_ -ne 'C:\Strawberry\c\bin' }) -join ';' - Import-Module "$env:VS\Common7\Tools\Microsoft.VisualStudio.DevShell.dll" - Enter-VsDevShell -VsInstallPath $env:VS -SkipAutomaticLocation -DevCmdArguments "-arch=x64 -host_arch=x64" - meson test -C build mpv: - - - name: Print meson test log - if: ${{ failure() && steps.tests.outcome == 'failure' }} - run: | - cat ./build/meson-logs/testlog.txt - - - uses: actions/upload-artifact@v4 - with: - name: mpv-x86_64-windows-msvc - path: | - build/mpv.??? - build/vulkan-*.dll - !build/mpv.lib - - macos: - runs-on: ${{ matrix.os }} - strategy: - matrix: - cc: - - "clang" - cxx: - - "clang++" - os: - - "macos-12" - - "macos-13" - - "macos-14" - include: - - os: "macos-12" - arch: "intel" - - os: "macos-13" - arch: "intel" - - os: "macos-14" - arch: "arm" - xcode: "Xcode_15.2" - steps: - - uses: actions/checkout@v4 - - - name: Remove stray upstream python binary symlinks under /usr/local - run: | - find /usr/local/bin -lname '*/Library/Frameworks/Python.framework/*' -delete -print - brew unlink python && brew link --overwrite python - - - name: Change Xcode version - if: ${{ matrix.xcode != '' }} - run: | - sudo xcode-select -s /Applications/${{ matrix.xcode }}.app - - - name: Install dependencies - run: | - brew update - brew install autoconf automake pkg-config libtool python freetype fribidi little-cms2 \ - luajit libass ffmpeg meson uchardet mujs libplacebo molten-vk vulkan-loader vulkan-headers - - - name: Build with meson - id: build - run: | - ./ci/build-macos.sh - env: - CC: "${{ matrix.cc }}" - CXX: "${{ matrix.cxx }}" - TRAVIS_OS_NAME: "${{ matrix.os }}" - - - name: Create App Bundle - run: | - meson compile -C build macos-bundle - tar -czvf mpv.tar.gz -C build mpv.app - - - name: Print meson log - if: ${{ failure() && steps.build.outcome == 'failure' }} - run: | - cat ./build/meson-logs/meson-log.txt - - - name: Run meson tests - id: tests - run: | - meson test -C build - - - name: Print meson test log - if: ${{ failure() && steps.tests.outcome == 'failure' }} - run: | - cat ./build/meson-logs/testlog.txt - - - uses: actions/upload-artifact@v4 - with: - name: mpv-${{ matrix.os }}-${{ matrix.arch }} - path: mpv.tar.gz - - linux: - runs-on: "ubuntu-22.04" - container: - image: "registry.opensuse.org/home/mia/images/images/mpv-ci:stable-deps" - env: - CC: "${{ matrix.config.cc }}" - CXX: "${{ matrix.config.cxx }}" - strategy: - matrix: - config: - - { - cc: "gcc", - cxx: "g++", - } - - { - cc: "clang", - cxx: "clang++", - } - 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: | - ./ci/build-tumbleweed.sh - - - name: Print meson log - if: ${{ failure() && steps.build.outcome == 'failure' }} - run: | - cat ./build/meson-logs/meson-log.txt - - - name: Run meson tests - id: tests - run: | - meson test -C build - - - name: Print meson test log - if: ${{ failure() && steps.tests.outcome == 'failure' }} - run: | - cat ./build/meson-logs/testlog.txt - - linux-fuzz: - runs-on: "ubuntu-latest" - container: - image: "registry.opensuse.org/home/mia/images/images/mpv-ci:stable-deps" - env: - CC: "clang" - CXX: "clang++" - steps: - - uses: actions/checkout@v4 - - - name: Build with meson - id: build - run: | - meson setup build \ - --werror \ - -Dc_args="-Wno-error=deprecated -Wno-error=deprecated-declarations" \ - -Dfuzzers=true -Dlibmpv=true -Dcplayer=false - meson compile -C build - - - name: Print meson log - if: ${{ failure() && steps.build.outcome == 'failure' }} - run: | - cat ./build/meson-logs/meson-log.txt - - linux-ffmpeg-4-4: - runs-on: ubuntu-22.04 - container: - # We want to test ffmpeg 4.4 which alpine 3.15 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 - steps: - - uses: actions/checkout@v4 - - name: Install dependencies - run: | - apk update - apk add \ - binutils \ - ffmpeg-dev \ - gcc \ - git \ - g++ \ - libass-dev \ - lua5.2-dev \ - pulseaudio-dev \ - libx11-dev \ - libxfixes-dev \ - libxkbcommon-dev \ - libxrandr-dev \ - libxpresent-dev \ - libxscrnsaver-dev \ - musl-dev \ - py3-pip \ - samurai - pip install meson - - - name: Build with meson - id: build - run: | - ./ci/build-linux-old.sh - - - name: Print meson log - if: ${{ failure() && steps.build.outcome == 'failure' }} - run: | - cat ./build/meson-logs/meson-log.txt - - - name: Run meson tests - id: tests - run: | - meson test -C build - - - name: Print meson test log - if: ${{ failure() && steps.tests.outcome == 'failure' }} - run: | - cat ./build/meson-logs/testlog.txt - - openbsd: - runs-on: ubuntu-latest # until https://github.com/actions/runner/issues/385 - timeout-minutes: 30 # avoid any weirdness with the VM - steps: - - uses: actions/checkout@v4 - - name: Test in OpenBSD VM - uses: cross-platform-actions/action@v0.23.0 - with: - operating_system: openbsd - version: '7.4' - run: | - sudo pkg_add -U \ - cmake \ - ffmpeg \ - git \ - libarchive \ - libbluray \ - libcaca \ - libcdio-paranoia \ - libdvdnav \ - libiconv \ - libv4l \ - libxkbcommon \ - luajit \ - meson \ - openal \ - pkgconf \ - pulseaudio \ - python3 \ - rubberband \ - sdl2 \ - shaderc \ - spirv-cross \ - spirv-headers \ - uchardet \ - vulkan-loader \ - vulkan-headers \ - zimg - ./ci/build-openbsd.sh - meson test -C build - - freebsd: - runs-on: ubuntu-latest # until https://github.com/actions/runner/issues/385 - timeout-minutes: 30 # avoid any weirdness with the VM - steps: - - uses: actions/checkout@v4 - - name: Test in FreeBSD VM - uses: cross-platform-actions/action@v0.23.0 - with: - operating_system: freebsd - version: '14.0' - run: | - sudo pkg update - sudo pkg install -y \ - alsa-lib \ - cmake \ - evdev-proto \ - ffmpeg \ - git \ - iconv \ - jackit \ - libarchive \ - libbluray \ - libcaca \ - libcdio-paranoia \ - libdvdnav \ - libplacebo \ - libXinerama \ - libxkbcommon \ - libxpresent \ - libXv \ - luajit \ - meson \ - mujs \ - openal-soft \ - pipewire \ - pkgconf \ - pulseaudio \ - python3 \ - rubberband \ - sekrit-twc-zimg \ - sdl2 \ - sndio \ - uchardet \ - v4l_compat \ - vulkan-headers \ - wayland-protocols - ./ci/build-freebsd.sh - meson test -C build - - msys2: - runs-on: windows-latest - strategy: - fail-fast: false - matrix: - sys: - - clang64 - - mingw64 - - ucrt64 - defaults: - run: - shell: msys2 {0} - steps: - - name: Disable autocrlf - shell: pwsh - run: | - git config --global core.autocrlf false - git config --global core.eol lf - - uses: actions/checkout@v4 - - uses: msys2/setup-msys2@v2 - with: - msystem: ${{ matrix.sys }} - update: true - install: git - pacboy: >- - angleproject:p - ca-certificates:p - cc:p - diffutils:p - ffmpeg:p - lcms2:p - libarchive:p - libass:p - libcdio-paranoia:p - libdvdnav:p - libjpeg-turbo:p - libplacebo:p - lua51:p - meson:p - ninja:p - pkgconf:p - python:p - rst2pdf:p - rubberband:p - shaderc:p - spirv-cross:p - uchardet:p - vapoursynth:p - vulkan-devel:p - - - name: Build with meson - id: build - run: | - ./ci/build-msys2.sh meson - - - name: Print meson log - if: ${{ failure() && steps.build.outcome == 'failure' }} - run: | - cat ./build/meson-logs/meson-log.txt - - - name: Run meson tests - id: tests - run: | - meson test -C build - - - name: Print meson test log - if: ${{ failure() && steps.tests.outcome == 'failure' }} - run: | - cat ./build/meson-logs/testlog.txt + - run: | + mkdir -p $CCACHE_DIR + echo done > $CCACHE_DIR/done