CI: Add macOS build and refactor
Adds a build on macOS using Xcode with Apple Clang.
Also refactors as cleanup and in preparation for cache implementation.
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index d4d8c9f..bfc775b 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -2,38 +2,40 @@
on: [push, pull_request]
jobs:
build:
- runs-on: ubuntu-20.04
- env:
- CC: gcc-10
- CXX: g++-10
+ runs-on: ${{ matrix.os }}
+ strategy:
+ fail-fast: false
+ matrix:
+ os: [ubuntu-latest, macos-latest]
+
steps:
+ - uses: actions/checkout@v2
+ - name: Set GCC & G++ 10 compiler (on Linux)
+ if: runner.os == 'Linux'
+ run: echo "CC=gcc-10" >> $GITHUB_ENV && echo "CXX=g++-10" >> $GITHUB_ENV
- uses: actions/setup-python@v2
- - name: Install dependencies
- run: |
- DEBIAN_FRONTEND=noninteractive sudo apt-get update || true
- DEBIAN_FRONTEND=noninteractive sudo apt-get install -y ninja-build gcc-10 g++-10
- pip install --upgrade pip
- pip install setuptools
- pip install meson
+
- uses: ilammy/setup-nasm@v1
with:
version: 2.15.05
- - uses: actions/checkout@v2
- - name: Setup aom
+ - uses: seanmiddleditch/gha-setup-ninja@v3
+ - run: pip install meson
+ - name: Build aom
working-directory: ./ext
run: bash aom.cmd
- - name: Setup dav1d
+ - name: Build dav1d
working-directory: ./ext
run: bash dav1d.cmd
- - name: Setup rav1e
+ - name: Build rav1e
working-directory: ./ext
run: bash rav1e.cmd
- - name: Setup libgav1
+ - name: Build libgav1
working-directory: ./ext
run: bash libgav1.cmd
- - name: Setup libyuv
+ - name: Build libyuv
working-directory: ./ext
run: bash libyuv.cmd
+
- name: Prepare libavif (cmake)
run: |
mkdir build && cd build
@@ -41,6 +43,7 @@
- name: Build libavif (make)
working-directory: ./build
run: make -j $(($(nproc) + 1))
- - name: Run AVIF Tests
+ - name: Run AVIF Tests (on Linux)
+ if: runner.os == 'Linux'
working-directory: ./build
run: ./aviftest ../tests/data