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 ./${{ matrix.target }}_mingw_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, # . 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 zypper -n install meson - 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 \ 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 \ pulseaudio \ rubberband \ sekrit-twc-zimg \ uchardet \ v4l_compat \ # run: | ./ci/build-freebsd.sh