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 ]
|
|
|
|
|
2024-10-14 10:41:01 -05:00
|
|
|
# TODO (@carsonradtke)
|
|
|
|
# - [ ] flesh out strategy.matrix
|
|
|
|
# - [ ] Update README with latest versions actively tested
|
|
|
|
# - [ ] Do not use '*-latest' for runs-on
|
2024-10-11 19:26:37 -05:00
|
|
|
jobs:
|
2024-10-14 09:54:12 -05:00
|
|
|
gcc:
|
|
|
|
strategy:
|
|
|
|
matrix:
|
2024-10-14 09:58:08 -05:00
|
|
|
cxx_version: [ 17 ] # 14, 17, 20
|
|
|
|
build_type: [ 'Debug'] # 'Debug', 'Release'
|
|
|
|
gcc_version: [ 12 ] # 12, 13, 14
|
2024-10-14 09:54:12 -05:00
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v4
|
|
|
|
|
2024-10-14 10:41:01 -05:00
|
|
|
- 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 09:58:08 -05:00
|
|
|
cxx_version: [ 17 ] # 14, 17, 20
|
|
|
|
build_type: [ 'Debug' ] # 'Debug', 'Release'
|
|
|
|
clang_version: [ 16 ] # 16, 17, 18
|
2024-10-14 09:54:12 -05:00
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v4
|
|
|
|
|
2024-10-14 10:41:01 -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
|
|
|
|
2024-10-14 10:41:01 -05:00
|
|
|
xcode:
|
|
|
|
strategy:
|
|
|
|
matrix:
|
|
|
|
cxx_version: [ 17 ] # 14, 17, 20
|
|
|
|
build_type: [ 'Debug' ] # 'Debug', 'Release'
|
|
|
|
xcode_version: [ "15.4" ] # "14.3.1", "15.4"
|
|
|
|
runs-on: macos-latest
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v4
|
2024-10-14 09:54:12 -05:00
|
|
|
|
2024-10-14 10:41:01 -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
|
|
|
|
2024-10-14 10:41:01 -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
|
|
|
|
2024-10-14 10:41:01 -05:00
|
|
|
VisualStudio:
|
2024-10-11 19:26:37 -05:00
|
|
|
strategy:
|
|
|
|
matrix:
|
2024-10-14 09:58:08 -05:00
|
|
|
cxx_version: [ 17 ] # 14, 17, 20
|
2024-10-14 10:01:23 -05:00
|
|
|
generator: [ "Visual Studio 17 2022" ] # "Visual Studio 16 2019", "Visual Studio 17 2022"
|
2024-10-14 09:58:08 -05:00
|
|
|
build_type: [ 'Debug' ] # 'Debug', 'Release'
|
2024-10-14 10:41:01 -05:00
|
|
|
extra_args: [ "", "-T ClangCL" ]
|
2024-10-14 09:54:12 -05:00
|
|
|
runs-on: windows-latest
|
2024-10-11 19:26:37 -05:00
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v4
|
|
|
|
|
2024-10-14 10:41:01 -05:00
|
|
|
- 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
|
|
|
|
2024-10-14 10:41:01 -05:00
|
|
|
- uses: microsoft/setup-msbuild@v1
|
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
|
|
|
|
|