diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index b7fdc77..1c968c0 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -17,6 +17,13 @@ jobs: # we need at least ruby 2.7 for the tests # instead of dealing with installing a modern version of ruby on 2019, we'll just use windows-2022 here os: [ubuntu-latest, windows-2022, macos-latest] + # we want to ensure compatibility with a recent CMake version as well as the lowest officially supported + # legacy version that we define as the default version of the second-latest Ubuntu LTS release currently available + cmake_version: ['3.16.3', '3.25.1'] + exclude: + # there seems to be an issue with CMake 3.16 not finding a C++ compiler on windows-2022 + - os: windows-2022 + cmake_version: '3.16.3' steps: - name: clone @@ -25,14 +32,17 @@ jobs: - name: Setup cmake uses: jwlawson/actions-setup-cmake@v1.13 with: - cmake-version: '3.25.x' + cmake-version: ${{ matrix.cmake_version }} - name: unit tests run: | cmake -Stest -Bbuild/test cmake --build build/test --target test-verbose + env: + CMAKE_VERSION: ${{ matrix.cmake_version }} - name: integration tests run: ruby test/integration/runner.rb env: CPM_INTEGRATION_TEST_DIR: ./build/integration + CMAKE_VERSION: ${{ matrix.cmake_version }} diff --git a/test/integration/test_system_warnings.rb b/test/integration/test_system_warnings.rb index 202fe6c..e0a8681 100644 --- a/test/integration/test_system_warnings.rb +++ b/test/integration/test_system_warnings.rb @@ -2,6 +2,11 @@ require_relative './lib' class SystemWarnings < IntegrationTest + def setup + # system is only supported for CMake >= 3.25 + @system_supported = (!ENV['CMAKE_VERSION']) || (Gem::Version.new(ENV['CMAKE_VERSION']) >= Gem::Version.new('3.25')) + end + def test_dependency_added_using_system for use_system in [true, false] do prj = make_project name: use_system ? "system" : "no_system", from_template: 'using-adder' @@ -21,7 +26,7 @@ class SystemWarnings < IntegrationTest PACK assert_success prj.configure - if use_system + if use_system and @system_supported assert_success prj.build else assert_failure prj.build @@ -42,7 +47,11 @@ class SystemWarnings < IntegrationTest PACK assert_success prj.configure - assert_success prj.build + if @system_supported + assert_success prj.build + else + assert_failure prj.build + end end end