blob: d70ba1ec631cb2322a8cb257d193d88ab7084b25 [file] [log] [blame] [edit]
# Workflow that builds libabvif with aom and dav1d, runs tests and generates coverage report.
name: CI Linux Code Coverage
on: [push, pull_request]
permissions:
contents: read
# Cancel the workflow if a new one is triggered from the same PR, branch, or tag, except on main.
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
jobs:
build-shared-run-golden-tests:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: ./.github/actions/setup-linux
id: setup
with:
codec-aom: "LOCAL"
codec-dav1d: "LOCAL"
libxml2: "LOCAL"
- name: Install LLVM
run: sudo apt install -y llvm
- name: Prepare libavif (cmake)
run: >
cmake -G Ninja -S . -B build
-DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON
-DAVIF_CODEC_AOM=LOCAL -DAVIF_CODEC_DAV1D=LOCAL
-DAVIF_LIBSHARPYUV=LOCAL -DAVIF_LIBXML2=LOCAL
-DAVIF_LIBYUV=OFF
-DAVIF_BUILD_EXAMPLES=ON -DAVIF_BUILD_APPS=ON
-DAVIF_BUILD_TESTS=ON -DAVIF_GTEST=LOCAL
-DAVIF_ENABLE_EXPERIMENTAL_YCGCO_R=ON
-DAVIF_ENABLE_EXPERIMENTAL_MINI=ON
-DAVIF_ENABLE_EXPERIMENTAL_EXTENDED_PIXI=ON
-DAVIF_ENABLE_WERROR=ON -DAVIF_ENABLE_COVERAGE=ON
-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
- name: Build libavif
run: cmake --build build --config Release --parallel 4
- name: Run AVIF coverage
run: cmake --build build --config Release --target avif_coverage --parallel 4
# See https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts
- name: Archive coverage output
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
with:
name: coverage-output
path: |
./build/tests/coverage/*
./build/tests/coverage/**/*