mirror of https://github.com/mpv-player/mpv
198 lines
5.0 KiB
YAML
198 lines
5.0 KiB
YAML
name: build
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
- ci
|
|
- 'release/**'
|
|
pull_request:
|
|
branches: [master]
|
|
|
|
jobs:
|
|
mingw:
|
|
runs-on: ubuntu-20.04
|
|
strategy:
|
|
matrix:
|
|
target: [i686-w64-mingw32, x86_64-w64-mingw32]
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
# Increase -N suffix here to force full rebuild after changes
|
|
- uses: actions/cache@v2
|
|
with:
|
|
path: mingw_prefix/
|
|
key: "${{ matrix.target }}-1"
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y autoconf automake pkg-config g++-mingw-w64 gcc-multilib nasm yasm
|
|
# Meson from apt is too old
|
|
pip3 install --no-input meson ninja
|
|
./bootstrap.py
|
|
|
|
- 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
|
|
env:
|
|
TARGET: ${{ matrix.target }}
|
|
|
|
- name: Print waf log
|
|
if: ${{ failure() }}
|
|
run: |
|
|
cat ./build/config.log
|
|
|
|
macos:
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
cc:
|
|
- "clang"
|
|
os:
|
|
- "macos-10.15"
|
|
- "macos-11"
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Override Xcode 13.0 if it's the default toolchain
|
|
run: |
|
|
XCODE_PATH="$(xcode-select -p)"
|
|
case "${XCODE_PATH}" in
|
|
*Xcode_13.0*)
|
|
sudo xcode-select -s "/Applications/Xcode_13.1.app"
|
|
echo "Updated Xcode path ${XCODE_PATH} -> $(xcode-select -p)"
|
|
;;
|
|
esac
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
brew update
|
|
brew install autoconf automake pkg-config libtool python freetype fribidi little-cms2 luajit 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-20.04"
|
|
container:
|
|
image: "registry.cirno.systems/kiwi/containers/mpv-ci:stable-deps"
|
|
# Disable seccomp until a container manager in GitHub recognizes
|
|
# clone3() syscall,
|
|
# <https://github.com/actions/virtual-environments/issues/3812>.
|
|
options: --security-opt seccomp=unconfined
|
|
env:
|
|
CC: "${{ matrix.cc }}"
|
|
strategy:
|
|
matrix:
|
|
cc:
|
|
- "gcc"
|
|
- "clang"
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
./bootstrap.py
|
|
# TODO: switch back to zypper when OpenSuse updates Meson
|
|
# zypper -n install meson
|
|
zypper -n install python3-pip
|
|
pip install --no-input meson ninja
|
|
|
|
- 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-10.15 # until https://github.com/actions/runner/issues/385
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Test in FreeBSD VM
|
|
uses: vmactions/freebsd-vm@v0.1.5 # aka FreeBSD 13.0
|
|
with:
|
|
usesh: true
|
|
prepare: |
|
|
# Requested in ci/build-freebsd.sh
|
|
pkg install -y \
|
|
cmake \
|
|
evdev-proto \
|
|
ffmpeg \
|
|
libplacebo \
|
|
libxkbcommon \
|
|
luajit \
|
|
openal-soft \
|
|
pkgconf \
|
|
python3 \
|
|
sdl2 \
|
|
vulkan-headers \
|
|
wayland-protocols \
|
|
#
|
|
# Optionally auto-enabled
|
|
pkg install -y \
|
|
alsa-lib \
|
|
jackit \
|
|
libXv \
|
|
libarchive \
|
|
libbluray \
|
|
libcaca \
|
|
libcdio-paranoia \
|
|
libdvdnav \
|
|
mujs \
|
|
pulseaudio \
|
|
rubberband \
|
|
sekrit-twc-zimg \
|
|
uchardet \
|
|
v4l_compat \
|
|
#
|
|
# Meson from pkg is too old
|
|
python3 -m ensurepip
|
|
pip3 install --no-input meson ninja
|
|
run: |
|
|
./ci/build-freebsd.sh
|