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 ] # TODO (@carsonradtke) # - [ ] flesh out strategy.matrix # - [ ] Update README with latest versions actively tested # - [ ] Do not use '*-latest' for runs-on jobs: gcc: strategy: matrix: cxx_version: [ 17 ] # 14, 17, 20 build_type: [ 'Debug'] # 'Debug', 'Release' gcc_version: [ 12 ] # 12, 13, 14 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 }} clang: strategy: matrix: cxx_version: [ 17 ] # 14, 17, 20 build_type: [ 'Debug' ] # 'Debug', 'Release' clang_version: [ 16 ] # 16, 17, 18 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: clang++-${{ matrix.clang_version }} gsl_cxx_standard: ${{ matrix.cxx_version }} 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 - 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_build_type: ${{ matrix.build_type }} cmake_cxx_compiler: clang++ gsl_cxx_standard: ${{ matrix.cxx_version }} VisualStudio: strategy: matrix: cxx_version: [ 17 ] # 14, 17, 20 generator: [ "Visual Studio 17 2022" ] # "Visual Studio 16 2019", "Visual Studio 17 2022" build_type: [ 'Debug' ] # 'Debug', 'Release' extra_args: [ "", "-T ClangCL" ] runs-on: windows-latest 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 }} - uses: microsoft/setup-msbuild@v1 - name: build working-directory: build run: msbuild GSL.sln - name: test working-directory: build run: ctest . --output-on-failure --no-compress-output