summaryrefslogtreecommitdiffstats
path: root/.github/workflows/build.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/build.yml')
-rw-r--r--.github/workflows/build.yml193
1 files changed, 193 insertions, 0 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644
index 0000000000..1524d584cd
--- /dev/null
+++ b/.github/workflows/build.yml
@@ -0,0 +1,193 @@
+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 }}-2"
+
+ - 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,
+ # <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
+ 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