mirror of
https://github.com/microsoft/GSL.git
synced 2026-07-05 08:00:49 +02:00
ffdd653d73
Co-authored-by: carsonRadtke <10507970+carsonRadtke@users.noreply.github.com>
107 lines
3.6 KiB
YAML
107 lines
3.6 KiB
YAML
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@v4
|
|
|
|
- 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@v4
|
|
|
|
- name: Run CMake (configure, build, test)
|
|
uses: ./.github/workflows/cmake
|
|
with:
|
|
cmake_preset: clang-${{ matrix.cxx_version }}-${{ matrix.build_type == 'Debug' && 'debug' || 'release' }}
|
|
|
|
xcode:
|
|
strategy:
|
|
matrix:
|
|
xcode_version: [ '16.4' ]
|
|
build_type: [ Debug, Release ]
|
|
cxx_version: [ 14, 17, 20, 23 ]
|
|
runs-on: macos-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- 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\""'
|
|
|
|
VisualStudio:
|
|
strategy:
|
|
matrix:
|
|
image: [ windows-2022, windows-2025 ]
|
|
build_type: [ Debug, Release ]
|
|
toolset: [ '', 'ClangCL' ]
|
|
cxx_version: [ 14, 17, 20, 23 ]
|
|
include:
|
|
# Regular MSVC builds use Ninja (from preset)
|
|
- toolset: ''
|
|
generator_override: ''
|
|
# ClangCL builds require Visual Studio generator
|
|
- toolset: 'ClangCL'
|
|
generator_override: '-G "Visual Studio 17 2022" -T ClangCL'
|
|
runs-on: ${{ matrix.image }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: microsoft/setup-msbuild@v2
|
|
|
|
- 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) || '' }}
|
|
|