summaryrefslogtreecommitdiffstats
path: root/.github/workflows/build.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/build.yml')
-rw-r--r--.github/workflows/build.yml152
1 files changed, 139 insertions, 13 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index ddbfd90..c949712 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -9,11 +9,21 @@ on:
paths-ignore:
- 'DOCS/**'
- 'TOOLS/lua/**'
+ - '.editorconfig'
+ - '.gitignore'
+ - 'Copyright'
+ - 'README.md'
+ - 'RELEASE_NOTES'
pull_request:
branches: [master]
paths-ignore:
- 'DOCS/**'
- 'TOOLS/lua/**'
+ - '.editorconfig'
+ - '.gitignore'
+ - 'Copyright'
+ - 'README.md'
+ - 'RELEASE_NOTES'
jobs:
mingw:
@@ -27,13 +37,13 @@ jobs:
matrix:
target: [i686-w64-mingw32, x86_64-w64-mingw32]
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- name: Get time
id: get_time
run: echo "timestamp=`date +%s%N`" >> $GITHUB_OUTPUT
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
with:
path: ${{ env.CCACHE_DIR }}
key: ${{ matrix.target }}-${{ steps.get_time.outputs.timestamp }}
@@ -71,7 +81,7 @@ jobs:
env:
WINEDEBUG: '+loaddll'
- - uses: actions/upload-artifact@v3
+ - uses: actions/upload-artifact@v4
with:
name: mpv-${{ matrix.target }}
path: mpv-git-*.zip
@@ -87,18 +97,33 @@ jobs:
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@v3
+ - 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 lua@5.1 libass ffmpeg meson libplacebo
+ 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
@@ -109,6 +134,11 @@ jobs:
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: |
@@ -124,6 +154,11 @@ jobs:
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:
@@ -143,7 +178,7 @@ jobs:
cxx: "clang++",
}
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- name: Install dependencies
run: |
@@ -170,16 +205,109 @@ jobs:
run: |
cat ./build/meson-logs/testlog.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@v3
+ - uses: actions/checkout@v4
- name: Test in FreeBSD VM
- uses: cross-platform-actions/action@v0.19.1
+ uses: cross-platform-actions/action@v0.23.0
with:
operating_system: freebsd
- version: '13.2'
+ version: '14.0'
run: |
sudo pkg update
sudo pkg install -y \
@@ -225,9 +353,7 @@ jobs:
fail-fast: false
matrix:
sys:
- - clang32
- clang64
- - mingw32
- mingw64
- ucrt64
defaults:
@@ -239,7 +365,7 @@ jobs:
run: |
git config --global core.autocrlf false
git config --global core.eol lf
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- uses: msys2/setup-msys2@v2
with:
msystem: ${{ matrix.sys }}
@@ -269,7 +395,7 @@ jobs:
spirv-cross:p
uchardet:p
vapoursynth:p
- vulkan:p
+ vulkan-devel:p
- name: Build with meson
id: build