mpv/.github/workflows/build.yml

219 lines
5.4 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 nasm ninja-build
pip3 install --no-input meson
./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-10.15"
- "macos-11"
- "macos-12"
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 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-20.04"
container:
image: "registry.opensuse.org/home/mia/images/images/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
# 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@v2
- 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