mirror of https://github.com/mpv-player/mpv
208 lines
5.0 KiB
YAML
208 lines
5.0 KiB
YAML
name: build
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
- ci
|
|
- 'release/**'
|
|
pull_request:
|
|
branches: [master]
|
|
|
|
jobs:
|
|
mingw:
|
|
runs-on: ubuntu-22.04
|
|
strategy:
|
|
matrix:
|
|
target: [i686-w64-mingw32, x86_64-w64-mingw32]
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
# Increase -N suffix here to force full rebuild after changes
|
|
- uses: actions/cache@v3
|
|
with:
|
|
path: mingw_prefix/
|
|
key: "${{ matrix.target }}-6"
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y autoconf automake pkg-config g++-mingw-w64 gcc-multilib meson nasm
|
|
./bootstrap.py
|
|
|
|
- name: Build libraries
|
|
run: |
|
|
./ci/build-mingw64.sh
|
|
env:
|
|
TARGET: ${{ matrix.target }}
|
|
|
|
- name: Build with meson
|
|
run: |
|
|
./ci/build-mingw64.sh meson
|
|
env:
|
|
TARGET: ${{ matrix.target }}
|
|
|
|
- name: Print meson log
|
|
if: ${{ failure() }}
|
|
run: |
|
|
cat ./build/meson-logs/meson-log.txt
|
|
|
|
- name: Build with waf
|
|
run: |
|
|
./ci/build-mingw64.sh waf pack
|
|
env:
|
|
TARGET: ${{ matrix.target }}
|
|
|
|
- name: Print waf log
|
|
if: ${{ failure() }}
|
|
run: |
|
|
cat ./build/config.log
|
|
|
|
- uses: actions/upload-artifact@v3
|
|
with:
|
|
name: mpv-${{ matrix.target }}
|
|
path: mpv-git-*.zip
|
|
|
|
macos:
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
cc:
|
|
- "clang"
|
|
os:
|
|
- "macos-11"
|
|
- "macos-12"
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- 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: Install dependencies
|
|
run: |
|
|
brew update
|
|
brew install autoconf automake pkg-config libtool python freetype fribidi little-cms2 lua@5.1 libass ffmpeg meson
|
|
|
|
- name: Build with meson
|
|
run: |
|
|
./ci/build-macos.sh meson
|
|
env:
|
|
CC: "${{ matrix.cc }}"
|
|
TRAVIS_OS_NAME: "${{ matrix.os }}"
|
|
|
|
- name: Print meson log
|
|
if: ${{ failure() }}
|
|
run: |
|
|
cat ./build/meson-logs/meson-log.txt
|
|
|
|
- name: Build with waf
|
|
run: |
|
|
./ci/build-macos.sh waf
|
|
env:
|
|
CC: "${{ matrix.cc }}"
|
|
TRAVIS_OS_NAME: "${{ matrix.os }}"
|
|
|
|
- name: Print waf log
|
|
if: ${{ failure() }}
|
|
run: |
|
|
cat ./build/config.log
|
|
|
|
linux:
|
|
runs-on: "ubuntu-22.04"
|
|
container:
|
|
image: "registry.opensuse.org/home/mia/images/images/mpv-ci:stable-deps"
|
|
env:
|
|
CC: "${{ matrix.cc }}"
|
|
strategy:
|
|
matrix:
|
|
cc:
|
|
- "gcc"
|
|
- "clang"
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
./bootstrap.py
|
|
# workaround to avoid "fatal: unsafe repository" error
|
|
git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
|
|
|
- name: Build with meson
|
|
run: |
|
|
./ci/build-tumbleweed.sh meson
|
|
|
|
- name: Print meson log
|
|
if: ${{ failure() }}
|
|
run: |
|
|
cat ./build/meson-logs/meson-log.txt
|
|
|
|
- name: Build with waf
|
|
run: |
|
|
./ci/build-tumbleweed.sh waf
|
|
|
|
- name: Print waf log
|
|
if: ${{ failure() }}
|
|
run: |
|
|
cat ./build/config.log
|
|
|
|
freebsd:
|
|
runs-on: macos-12 # until https://github.com/actions/runner/issues/385
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Test in FreeBSD VM
|
|
uses: vmactions/freebsd-vm@v0
|
|
with:
|
|
usesh: true
|
|
prepare: |
|
|
# Requested in ci/build-freebsd.sh
|
|
pkg install -y \
|
|
cmake \
|
|
evdev-proto \
|
|
ffmpeg \
|
|
libplacebo \
|
|
libxkbcommon \
|
|
libXinerama \
|
|
libxpresent \
|
|
luajit \
|
|
meson \
|
|
openal-soft \
|
|
pkgconf \
|
|
python3 \
|
|
sdl2 \
|
|
sndio \
|
|
vulkan-headers \
|
|
wayland-protocols \
|
|
#
|
|
# Optionally auto-enabled
|
|
pkg install -y \
|
|
alsa-lib \
|
|
jackit \
|
|
libXv \
|
|
libarchive \
|
|
libbluray \
|
|
libcaca \
|
|
libcdio-paranoia \
|
|
libdvdnav \
|
|
mujs \
|
|
pipewire \
|
|
pulseaudio \
|
|
rubberband \
|
|
sekrit-twc-zimg \
|
|
uchardet \
|
|
v4l_compat \
|
|
#
|
|
run: |
|
|
./ci/build-freebsd.sh
|
|
|
|
- name: Print meson log
|
|
if: ${{ failure() }}
|
|
run: |
|
|
cat ./build/meson-logs/meson-log.txt
|
|
|
|
- name: Print waf log
|
|
if: ${{ failure() }}
|
|
run: |
|
|
cat ./build/config.log
|