mpv/.github/workflows/build.yml

207 lines
5.0 KiB
YAML
Raw Normal View History

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
2021-10-06 22:18:58 +00:00
# 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
2021-07-23 09:24:38 +00:00
macos:
runs-on: ${{ matrix.os }}
strategy:
matrix:
cc:
- "clang"
os:
- "macos-11"
- "macos-12"
2021-07-23 09:24:38 +00:00
steps:
- uses: actions/checkout@v2
- 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
2021-07-23 09:24:38 +00:00
- name: Build with waf
2021-07-23 09:24:38 +00:00
run: |
./ci/build-macos.sh waf
2021-07-23 09:24:38 +00:00
env:
CC: "${{ matrix.cc }}"
TRAVIS_OS_NAME: "${{ matrix.os }}"
- name: Print waf log
2021-07-23 09:24:38 +00:00
if: ${{ failure() }}
run: |
cat ./build/config.log
2021-07-25 09:01:06 +00:00
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
2021-07-25 09:01:06 +00:00
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
2021-07-25 09:01:06 +00:00
- name: Build with waf
2021-07-25 09:01:06 +00:00
run: |
./ci/build-tumbleweed.sh waf
2021-07-25 09:01:06 +00:00
- name: Print waf log
2021-07-25 09:01:06 +00:00
if: ${{ failure() }}
run: |
cat ./build/config.log
2021-07-25 20:24:05 +00:00
freebsd:
2022-07-24 19:41:22 +00:00
runs-on: macos-12 # until https://github.com/actions/runner/issues/385
2021-07-25 20:24:05 +00:00
steps:
- uses: actions/checkout@v2
- name: Test in FreeBSD VM
uses: vmactions/freebsd-vm@v0
2021-07-25 20:24:05 +00:00
with:
usesh: true
prepare: |
# Requested in ci/build-freebsd.sh
pkg install -y \
cmake \
2021-07-25 20:24:05 +00:00
evdev-proto \
ffmpeg \
libplacebo \
libxkbcommon \
libXinerama \
libxpresent \
2021-07-25 20:24:05 +00:00
luajit \
meson \
2021-07-25 20:24:05 +00:00
openal-soft \
pkgconf \
python3 \
sdl2 \
sndio \
2021-07-25 20:24:05 +00:00
vulkan-headers \
wayland-protocols \
#
# Optionally auto-enabled
pkg install -y \
alsa-lib \
jackit \
libXv \
libarchive \
libbluray \
libcaca \
libcdio-paranoia \
libdvdnav \
mujs \
2022-08-18 10:14:46 +00:00
pipewire \
2021-07-25 20:24:05 +00:00
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