GSL/.github/workflows/compilers.yml

104 lines
2.9 KiB
YAML
Raw Normal View History

2024-10-11 19:26:37 -05:00
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.
2024-10-11 19:26:37 -05:00
jobs:
2024-10-14 09:54:12 -05:00
gcc:
strategy:
matrix:
2024-10-14 11:58:50 -05:00
cxx_version: [ 14, 17, 20 ]
build_type: [ 'Debug', 'Release' ]
gcc_version: [ 10, 11, 12 ]
2024-10-14 09:54:12 -05:00
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run CMake (configure, build, test)
uses: ./.github/workflows/cmake
with:
cmake_build_type: ${{ matrix.build_type }}
cmake_cxx_compiler: g++-${{ matrix.gcc_version }}
gsl_cxx_standard: ${{ matrix.cxx_version }}
2024-10-14 09:54:12 -05:00
clang:
strategy:
matrix:
2024-10-14 11:58:50 -05:00
cxx_version: [ 14, 17, 20 ]
build_type: [ 'Debug', 'Release' ]
clang_version: [ 13, 14, 15 ]
2024-10-14 09:54:12 -05:00
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
2024-10-14 11:58:50 -05:00
- name: Run CMake (configure, build, test)
uses: ./.github/workflows/cmake
with:
cmake_build_type: ${{ matrix.build_type }}
cmake_cxx_compiler: clang++-${{ matrix.clang_version }}
gsl_cxx_standard: ${{ matrix.cxx_version }}
2024-10-14 09:54:12 -05:00
xcode:
strategy:
matrix:
2024-10-14 11:58:50 -05:00
cxx_version: [ 14, 17, 20 ]
build_type: [ 'Debug', 'Release' ]
xcode_version: [ '14.3.1', '15.4' ]
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
2024-10-14 09:54:12 -05:00
- name: select xcode version
run: sudo xcode-select -s /Applications/Xcode_${{ matrix.xcode_version }}.app
2024-10-14 09:54:12 -05:00
- name: Run CMake (configure, build, test)
uses: ./.github/workflows/cmake
with:
cmake_build_type: ${{ matrix.build_type }}
cmake_cxx_compiler: clang++
gsl_cxx_standard: ${{ matrix.cxx_version }}
2024-10-14 09:54:12 -05:00
VisualStudio:
2024-10-11 19:26:37 -05:00
strategy:
matrix:
2024-10-14 11:58:50 -05:00
cxx_version: [ 14, 17, 20 ]
extra_args: [ '', '-T ClangCL' ]
2024-10-14 13:48:40 -05:00
include:
- generator: 'Visual Studio 16 2019'
image: 'windows-2019'
- generator: 'Visual Studio 17 2022'
image: 'windows-2022'
runs-on: ${{ matrix.image }}
2024-10-11 19:26:37 -05:00
steps:
- uses: actions/checkout@v4
- name: Run CMake (configure only)
uses: ./.github/workflows/cmake
with:
cmake_generator: ${{ matrix.generator }}
cmake_build_type: ${{ matrix.build_type }}
cmake_configure_only: true
gsl_cxx_standard: ${{ matrix.cxx_version }}
extra_cmake_args: ${{ matrix.extra_args }}
2024-10-11 19:26:37 -05:00
- uses: microsoft/setup-msbuild@v2
2024-10-11 19:26:37 -05:00
- name: build
working-directory: build
run: msbuild GSL.sln
- name: test
working-directory: build
run: ctest . --output-on-failure --no-compress-output