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 ] jobs: # TODO (@carsonradtke) # - [ ] Xcode # - [ ] VS_LLVM # - [ ] Update README with latest versions actively tested # - [ ] Do not use '*-latest' for runs-on 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: create build directory run: mkdir build - name: cmake configure working-directory: build run: cmake -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DGSL_CXX_STANDARD=${{ matrix.cxx_version }} -DCI_TESTING:BOOL=ON -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -Werror=dev -DCMAKE_CXX_COMPILER=g++-${{ matrix.gcc_version }} .. - name: build working-directory: build run: make - name: test working-directory: build run: make test 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: create build directory run: mkdir build - name: cmake configure working-directory: build run: cmake -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DGSL_CXX_STANDARD=${{ matrix.cxx_version }} -DCI_TESTING:BOOL=ON -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -Werror=dev -DCMAKE_CXX_COMPILER=clang++-${{ matrix.clang_version }} .. - name: build working-directory: build run: make - name: test working-directory: build run: make test VS_MSVC: 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' runs-on: windows-latest steps: - uses: actions/checkout@v4 - uses: microsoft/setup-msbuild@v1 - name: create build directory run: mkdir build - name: cmake configure working-directory: build run: cmake -G "${{ matrix.generator }}" -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DGSL_CXX_STANDARD=${{ matrix.cxx_version }} -DCI_TESTING:BOOL=ON -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -Werror=dev .. - name: build working-directory: build run: msbuild GSL.sln - name: test working-directory: build run: ctest . --output-on-failure --no-compress-output