From c548be30eb3841c3defe55e532dee4e9ece81866 Mon Sep 17 00:00:00 2001 From: Alexander Grund Date: Tue, 30 Sep 2025 12:56:32 +0200 Subject: [PATCH] Exclude non-working configurations - Testing requires CMake 3.9, exclude earlier and add 3.9 job - Exclude individual libraries according to their required CMake versions --- .github/workflows/ci.yml | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a0c2f05..4c88054 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -386,7 +386,15 @@ jobs: strategy: matrix: enable_test: [ON, OFF] - cmake_version: [default, 3.5.0, 3.6.0, 3.8.0, 3.10.0, 3.13.0, 3.14.0, 3.16.0, 3.19.0, 3.31.0, 4.0.0, 4.1.0] + cmake_version: [default, 3.5.0, 3.6.0, 3.8.0, 3.9.0, 3.10.0, 3.13.0, 3.14.0, 3.16.0, 3.19.0, 3.31.0, 4.0.0, 4.1.0] + exclude: + # BoostTestJamfile requires CMake 3.9 + - cmake_version: 3.5.0 + enable_test: ON + - cmake_version: 3.6.0 + enable_test: ON + - cmake_version: 3.8.0 + enable_test: ON fail-fast: false runs-on: ubuntu-latest @@ -474,8 +482,17 @@ jobs: working-directory: ../boost-root if: matrix.cmake_version != 'default' run: | + version_greater_equal() { printf '%s\n' "$2" "$1" | sort --check=quiet --version-sort; } + excluded=() + version_greater_equal ${{matrix.cmake_version}} 3.7.0 || excluded+=("outcome") + version_greater_equal ${{matrix.cmake_version}} 3.8.0 || excluded+=("asio" "atomic" "beast" "bind" "bloom" "callable_traits" "charconv" "chrono" "compat" "container_hash" "contract" "crc" "date_time" "endian" "fiber" "filesystem" "format" "function" "geometry" "gil" "graph" "hana" "hash2" "heap" "hof" "iostreams" "json" "lambda2" "lockfree" "log" "mqtt5" "mysql" "numeric/ublas" "process" "program_options" "property_tree" "random" "ratio" "redis" "safe_numerics" "serialization" "smart_ptr" "static_string" "stl_interfaces" "system" "test" "thread" "type_erasure" "typeof" "unordered" "url" "uuid" "variant2" "wave" "yap") + version_greater_equal ${{matrix.cmake_version}} 3.9.0 || excluded+=("hana" "nowide") + version_greater_equal ${{matrix.cmake_version}} 3.10.0 || excluded+=("gil" "sort") + version_greater_equal ${{matrix.cmake_version}} 3.11.0 || excluded+=("locale") + version_greater_equal ${{matrix.cmake_version}} 3.12.0 || excluded+=("cobalt" "histogram" "msm") + version_greater_equal ${{matrix.cmake_version}} 3.14.0 || excluded+=("parser" "python" "pfr" "mysql") # mysql depends on pfr /tmp/cmake/bin/cmake --version - /tmp/cmake/bin/cmake -DBUILD_TESTING=${{matrix.enable_test}} -B "__build_cmake-$version" . + /tmp/cmake/bin/cmake -DBUILD_TESTING=${{matrix.enable_test}} -DBOOST_EXCLUDE_LIBRARIES="$(IFS=';'; echo "${excluded[*]}")" -B "__build_cmake-$version" . BoostTest: strategy: