mirror of
https://github.com/catchorg/Catch2.git
synced 2025-06-15 15:55:31 +02:00

Support for GCC 7 and 8 can continue on an as-needed basis. The goal is not to explicitly break support for such compilers. Chances are they will continue to compile Catch2 for some time into the future. Rather, it no longer seems a prudent use of resources to continuously test with these compilers.
126 lines
4.4 KiB
YAML
126 lines
4.4 KiB
YAML
# The builds in this file are more complex (e.g. they need custom CMake
|
|
# configuration) and thus are unsuitable to the simple build matrix
|
|
# approach used in simple-builds
|
|
name: Linux Builds (Complex)
|
|
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
build:
|
|
name: ${{matrix.build_description}}, ${{matrix.cxx}}, C++${{matrix.std}} ${{matrix.build_type}}
|
|
runs-on: ubuntu-22.04
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
# We add builds one by one in this case, because there are no
|
|
# dimensions that are shared across the builds
|
|
include:
|
|
|
|
# Single surrogate header build
|
|
- cxx: clang++-14
|
|
build_description: Surrogates build
|
|
build_type: Debug
|
|
std: 14
|
|
other_pkgs: clang-14
|
|
cmake_configurations: -DCATCH_BUILD_SURROGATES=ON
|
|
|
|
# Extras and examples with gcc-11
|
|
- cxx: g++-11
|
|
build_description: Extras + Examples
|
|
build_type: Debug
|
|
std: 14
|
|
other_pkgs: g++-11
|
|
cmake_configurations: -DCATCH_BUILD_EXTRA_TESTS=ON -DCATCH_BUILD_EXAMPLES=ON -DCATCH_ENABLE_CMAKE_HELPER_TESTS=ON
|
|
- cxx: g++-11
|
|
build_description: Extras + Examples
|
|
build_type: Release
|
|
std: 14
|
|
other_pkgs: g++-11
|
|
cmake_configurations: -DCATCH_BUILD_EXTRA_TESTS=ON -DCATCH_BUILD_EXAMPLES=ON -DCATCH_ENABLE_CMAKE_HELPER_TESTS=ON
|
|
|
|
# Extras and examples with Clang-14
|
|
- cxx: clang++-14
|
|
build_description: Extras + Examples
|
|
build_type: Debug
|
|
std: 17
|
|
other_pkgs: clang-14
|
|
cmake_configurations: -DCATCH_BUILD_EXTRA_TESTS=ON -DCATCH_BUILD_EXAMPLES=ON -DCATCH_ENABLE_CMAKE_HELPER_TESTS=ON
|
|
- cxx: clang++-14
|
|
build_description: Extras + Examples
|
|
build_type: Release
|
|
std: 17
|
|
other_pkgs: clang-14
|
|
cmake_configurations: -DCATCH_BUILD_EXTRA_TESTS=ON -DCATCH_BUILD_EXAMPLES=ON -DCATCH_ENABLE_CMAKE_HELPER_TESTS=ON
|
|
|
|
# Configure tests with Clang-14
|
|
- cxx: clang++-14
|
|
build_description: CMake configuration tests
|
|
build_type: Debug
|
|
std: 14
|
|
other_pkgs: clang-14
|
|
cmake_configurations: -DCATCH_ENABLE_CONFIGURE_TESTS=ON
|
|
|
|
# Valgrind test Clang-14
|
|
# - cxx: clang++-14
|
|
# build_description: Valgrind tests
|
|
# build_type: Debug
|
|
# std: 14
|
|
# other_pkgs: clang-14 valgrind
|
|
# cmake_configurations: -DMEMORYCHECK_COMMAND=`which valgrind` -DMEMORYCHECK_COMMAND_OPTIONS="-q --track-origins=yes --leak-check=full --num-callers=50 --show-leak-kinds=definite --error-exitcode=1"
|
|
# other_ctest_args: -T memcheck -LE uses-python
|
|
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Prepare environment
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y ninja-build ${{matrix.other_pkgs}}
|
|
|
|
- name: Configure build
|
|
run: |
|
|
cmake --preset basic-tests -GNinja \
|
|
-DCMAKE_BUILD_TYPE=${{matrix.build_type}} \
|
|
-DCMAKE_CXX_COMPILER=${{matrix.cxx}} \
|
|
-DCMAKE_CXX_STANDARD=${{matrix.std}} \
|
|
${{matrix.cmake_configurations}}
|
|
|
|
- name: Build
|
|
run: cmake --build build
|
|
|
|
- name: Test
|
|
run: ctest --test-dir build -j --output-on-failure
|
|
|
|
clang-tidy:
|
|
name: clang-tidy
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Prepare environment
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y ninja-build clang-15 clang-tidy-15
|
|
|
|
- name: Configure
|
|
run: |
|
|
clangtidy="clang-tidy-15;-use-color"
|
|
# Use a dummy compiler/linker/ar/ranlib to effectively disable the
|
|
# compilation and only run clang-tidy.
|
|
cmake --preset basic-tests -GNinja \
|
|
-DCMAKE_AR=/usr/bin/true \
|
|
-DCMAKE_BUILD_TYPE=Debug \
|
|
-DCMAKE_CXX_CLANG_TIDY="$clangtidy" \
|
|
-DCMAKE_CXX_COMPILER_AR=/usr/bin/true \
|
|
-DCMAKE_CXX_COMPILER_LAUNCHER=/usr/bin/true \
|
|
-DCMAKE_CXX_COMPILER=clang++-15 \
|
|
-DCMAKE_CXX_LINK_EXECUTABLE=/usr/bin/true \
|
|
-DCMAKE_CXX_STANDARD=17 \
|
|
-DCMAKE_RANLIB=/usr/bin/true \
|
|
-DCATCH_BUILD_EXAMPLES=ON \
|
|
-DCATCH_ENABLE_CMAKE_HELPER_TESTS=ON
|
|
|
|
- name: Run clang-tidy
|
|
run: cmake --build build
|