# This is a copy of ci-unix-static.yml with gtest disabled. It differs from ci-unix-static.yml as follows:
#
#   * The os matrix consists of ubuntu-24.04 only.
#   * Does not build libgav1. (Building libgav1 would enable CXX in CMakeLists.txt.)
#   * Disables gtest.

name: CI Disable GTest
on:
  push:
  pull_request:
    paths:
      - '.github/workflows/ci-disable-gtest.yml'
      - '**CMakeLists.txt'
      - 'cmake/**'
      - 'ext/**'

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-disable-gtest:
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-24.04]
        include:
          - runs-on: ubuntu-24.04
            compiler: gcc
            gcc: 14

    steps:
    - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
    - uses: ./.github/actions/setup-linux
      with:
        codec-aom: 'LOCAL'
        codec-dav1d: 'LOCAL'
        codec-rav1e: 'LOCAL'
        gcc-version: ${{ matrix.gcc }}
        libyuv: 'LOCAL'
        recent-cmake: 'true'

    - name: Prepare libavif (cmake)
      run: >
        cmake -G Ninja -S . -B build
        -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF
        -DAVIF_CODEC_AOM=LOCAL -DAVIF_CODEC_DAV1D=LOCAL
        -DAVIF_CODEC_RAV1E=LOCAL -DAVIF_CODEC_SVT=LOCAL
        -DAVIF_LIBYUV=LOCAL -DAVIF_LIBSHARPYUV=LOCAL
        -DAVIF_BUILD_EXAMPLES=ON -DAVIF_BUILD_APPS=ON
        -DAVIF_BUILD_TESTS=ON -DAVIF_ENABLE_GTEST=OFF
        -DAVIF_ENABLE_WERROR=ON
    - name: Build libavif (ninja)
      working-directory: ./build
      run: ninja
    - name: Run AVIF Tests
      working-directory: ./build
      run: ctest -j $(getconf _NPROCESSORS_ONLN) --output-on-failure
