Files
zoneminder/.github/workflows/ci-cpp-tests.yml
T
Isaac ConnorandClaude Opus 5 5c060bb6e6 chore: drop the libvlc build dependency from packaging, CI and docs
Nothing links or dlopens libvlc any more, so the dev package is no
longer a build requirement anywhere: the debian, beowulf, ubuntu and
split-package control files, the podman Containerfile, the redhat and
opensuse specs, the centos CI image, and the five workflows that
installed libvlc-dev. The redhat spec also required vlc-core at
runtime, which was the dlopen target.

Documentation follows: the libVLC source tab section, the macos note
about libVLC not being found, and the WEB_FILTER_SOURCE source-type
list.

Two stale statements nearby are corrected while the files are open. The
Remote source tab still said its RTSP method "may be removed in the
future"; it was removed earlier on this branch. AGENTS.md still listed
RemoteCameraRTSP and LibVLCCamera among the camera classes, both of
which are now gone.

All workflow yaml parses, the three edited rst files render, and the
debian control field structure is unchanged apart from the removed
entries.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015Y6FieTwEXuLhhR4e2yiax
2026-10-10 09:32:17 -04:00

66 lines
2.2 KiB
YAML

name: CI C++ Tests
# Builds the Catch2 suite and runs it. Nothing else in CI does: the packaging
# workflows and the -Werror job all configure with BUILD_TEST_SUITE off, so
# tests/ could stop compiling and no job would notice.
#
# Pinned to ubuntu-24.04 rather than ubuntu-latest because the suite needs
# Catch2 v3, which is what noble packages. An older image ships v2, where the
# v3 spellings the tests use (catch2/catch_all.hpp, Catch::Approx,
# Catch2::Catch2WithMain) do not exist.
on:
push:
branches:
- '*'
pull_request:
branches: [ master ]
permissions:
contents: read
jobs:
cpp-tests:
name: Catch2 suite (gcc, Debug)
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v7
with:
submodules: recursive
- name: Install build dependencies
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
build-essential cmake pkg-config gcc-multilib g++-multilib \
catch2 \
libavcodec-dev libavformat-dev libavutil-dev libavdevice-dev \
libswresample-dev libswscale-dev \
default-libmysqlclient-dev \
libbz2-dev libcurl4-openssl-dev libjpeg-dev libturbojpeg0-dev \
libpcre2-dev libpolkit-gobject-1-dev libssl-dev zlib1g-dev \
libv4l-dev libvncserver-dev \
libmosquitto-dev libmosquittopp-dev \
gsoap libgsoap-dev
- name: Configure
run: |
cmake -S . -B build \
-DCMAKE_BUILD_TYPE=Debug \
-DBUILD_TEST_SUITE=ON \
-DBUILD_MAN=0
- name: Build
run: cmake --build build --target tests -j"$(nproc)"
# Run the binary rather than ctest. Two reasons: the [notCI] tag marks the
# cases that need a reachable database or a listening socket, and
# catch_discover_tests does not carry Catch2 tags through as ctest labels,
# so ctest has no way to skip them. And zm_font.cpp loads its fixtures by
# relative path, so the working directory has to be the one the build
# copied tests/data into.
- name: Run the tests
working-directory: build/tests
run: ./tests "~[notCI]"