Prevent external construction of checked iterators #461
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Compiler Integration Tests | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: true | |
| on: | |
| push: | |
| branches: [ main ] | |
| pull_request: | |
| branches: [ main ] | |
| # These jobs are correlated with the officially supported compilers | |
| # and toolsets. If you change any versions, please update README.md. | |
| jobs: | |
| gcc: | |
| strategy: | |
| matrix: | |
| gcc_version: [ 12, 13, 14 ] | |
| build_type: [ Debug, Release ] | |
| cxx_version: [ 14, 17, 20, 23 ] | |
| exclude: | |
| # https://github.com/google/googletest/issues/4232 | |
| # Looks like GoogleTest is not interested in making version 1.14 | |
| # work with gcc-12. | |
| - gcc_version: 12 | |
| cxx_version: 20 | |
| - gcc_version: 12 | |
| cxx_version: 23 | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Run CMake (configure, build, test) | |
| uses: ./.github/workflows/cmake | |
| with: | |
| cmake_preset: gcc-${{ matrix.cxx_version }}-${{ matrix.build_type == 'Debug' && 'debug' || 'release' }} | |
| clang: | |
| strategy: | |
| matrix: | |
| clang_version: [ 16, 17, 18 ] | |
| build_type: [ Debug, Release ] | |
| cxx_version: [ 14, 17, 20, 23 ] | |
| exclude: | |
| # https://github.com/llvm/llvm-project/issues/93734 | |
| # Looks like clang fixed this issue in clang-18, but won't backport | |
| # the fix. | |
| - clang_version: 17 | |
| cxx_version: 23 | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Run CMake (configure, build, test) | |
| uses: ./.github/workflows/cmake | |
| with: | |
| cmake_preset: clang-${{ matrix.cxx_version }}-${{ matrix.build_type == 'Debug' && 'debug' || 'release' }} | |
| linux-sanitizers: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Run CMake with AddressSanitizer and UndefinedBehaviorSanitizer | |
| uses: ./.github/workflows/cmake | |
| with: | |
| cmake_preset: clang-20-debug-asan-ubsan | |
| xcode: | |
| strategy: | |
| matrix: | |
| xcode_version: [ '26.6' ] | |
| build_type: [ Debug, Release ] | |
| cxx_version: [ 14, 17, 20, 23 ] | |
| runs-on: macos-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: select xcode version | |
| run: sudo xcode-select -s /Applications/Xcode_${{ matrix.xcode_version }}.app | |
| - name: Run CMake (configure, build, test) | |
| uses: ./.github/workflows/cmake | |
| with: | |
| cmake_preset: clang-${{ matrix.cxx_version }}-${{ matrix.build_type == 'Debug' && 'debug' || 'release' }} | |
| extra_cmake_configure_args: '-DCMAKE_CXX_FLAGS="-isysroot \"$(xcode-select --print-path)/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk\""' | |
| msvc: | |
| strategy: | |
| matrix: | |
| image: [ windows-2022, windows-2025 ] | |
| build_type: [ Debug, Release ] | |
| toolset: [ 'msvc', 'ClangCL' ] | |
| cxx_version: [ 14, 17, 20, 23 ] | |
| include: | |
| # Regular MSVC builds use Ninja (from preset) | |
| - toolset: 'msvc' | |
| generator_override: '' | |
| # ClangCL builds require Visual Studio generator; version depends on image | |
| - image: windows-2022 | |
| toolset: 'ClangCL' | |
| generator_override: '-G "Visual Studio 17 2022" -T ClangCL' | |
| - image: windows-2025 | |
| toolset: 'ClangCL' | |
| generator_override: '-G "Visual Studio 18 2026" -T ClangCL' | |
| runs-on: ${{ matrix.image }} | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: microsoft/setup-msbuild@v3 | |
| - uses: ilammy/msvc-dev-cmd@v1 | |
| - name: Run CMake (configure, build, test) | |
| uses: ./.github/workflows/cmake | |
| with: | |
| cmake_preset: msvc-${{ matrix.cxx_version }}-${{ matrix.build_type == 'Debug' && 'debug' || 'release' }} | |
| extra_cmake_configure_args: ${{ matrix.generator_override }} | |
| extra_cmake_build_args: ${{ matrix.toolset == 'ClangCL' && format('--config {0}', matrix.build_type) || '' }} | |
| extra_ctest_args: ${{ matrix.toolset == 'ClangCL' && format('-C {0}', matrix.build_type) || '' }} | |
| windows-sanitizer: | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: microsoft/setup-msbuild@v3 | |
| - uses: ilammy/msvc-dev-cmd@v1 | |
| - name: Run CMake with AddressSanitizer | |
| uses: ./.github/workflows/cmake | |
| with: | |
| cmake_preset: msvc-20-debug-asan |