Add experimental workflow for Clang 20 (#60, thanks @striezel) #36
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| env: | |
| PROJECT: STRING_VIEW_LITE | |
| on: | |
| push: | |
| branches: [ master ] | |
| pull_request: | |
| branches: [ master ] | |
| workflow_dispatch: | |
| jobs: | |
| gcc: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| version: [9, 10, 11] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install GCC ${{ matrix.version }} | |
| run: sudo apt-get install -y gcc-${{ matrix.version }} g++-${{ matrix.version }} | |
| - name: Configure tests | |
| env: | |
| CXX: g++-${{ matrix.version }} | |
| run: cmake -S . -B build | |
| -D CMAKE_BUILD_TYPE:STRING=Release | |
| -D ${{ env.PROJECT }}_OPT_SELECT_NONSTD=ON | |
| -D ${{ env.PROJECT }}_OPT_BUILD_TESTS=ON | |
| -D ${{ env.PROJECT }}_OPT_BUILD_EXAMPLES=OFF | |
| - name: Build tests | |
| run: cmake --build build -j 4 | |
| - name: Run tests | |
| working-directory: build | |
| run: ctest --output-on-failure -j 4 | |
| clang: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - version: 11 | |
| os: 'ubuntu-22.04' | |
| - version: 12 | |
| os: 'ubuntu-22.04' | |
| - version: 19 | |
| os: 'ubuntu-24.04' | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Clang ${{ matrix.version }} | |
| run: sudo apt-get install -y clang-${{ matrix.version }} | |
| - name: Configure tests | |
| env: | |
| CXX: clang-${{ matrix.version }} | |
| run: cmake -S . -B build | |
| -D CMAKE_CXX_COMPILER=clang++-${{ matrix.version }} | |
| -D CMAKE_BUILD_TYPE:STRING=Release | |
| -D ${{ env.PROJECT }}_OPT_SELECT_NONSTD=ON | |
| -D ${{ env.PROJECT }}_OPT_BUILD_TESTS=ON | |
| -D ${{ env.PROJECT }}_OPT_BUILD_EXAMPLES=OFF | |
| - name: Build tests | |
| run: cmake --build build -j 4 | |
| - name: Run tests | |
| working-directory: build | |
| run: ctest --output-on-failure -j 4 | |
| clang_in_container: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - version: 20 | |
| image: 'ubuntu:25.04' | |
| runs-on: ubuntu-latest | |
| container: ${{ matrix.image }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Clang ${{ matrix.version }} | |
| run: | | |
| export DEBIAN_FRONTEND=noninteractive | |
| apt-get update && apt-get upgrade -y | |
| apt-get install -y clang-${{ matrix.version }} cmake | |
| - name: Configure tests | |
| env: | |
| CXX: clang++-${{ matrix.version }} | |
| run: cmake -S . -B build | |
| -D CMAKE_CXX_COMPILER=clang++-${{ matrix.version }} | |
| -D CMAKE_BUILD_TYPE:STRING=Release | |
| -D ${{ env.PROJECT }}_OPT_SELECT_NONSTD=ON | |
| -D ${{ env.PROJECT }}_OPT_BUILD_TESTS=ON | |
| -D ${{ env.PROJECT }}_OPT_BUILD_EXAMPLES=OFF | |
| - name: Build tests | |
| run: cmake --build build -j 4 | |
| - name: Run tests | |
| working-directory: build | |
| run: ctest --output-on-failure -j 4 | |
| msvc: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [windows-2019, windows-2022] | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Configure tests | |
| run: cmake -S . -B build | |
| -D ${{ env.PROJECT }}_OPT_SELECT_NONSTD=ON | |
| -D ${{ env.PROJECT }}_OPT_BUILD_TESTS=ON | |
| -D ${{ env.PROJECT }}_OPT_BUILD_EXAMPLES=OFF | |
| - name: Build tests | |
| run: cmake --build build --config Release -j 4 | |
| - name: Run tests | |
| working-directory: build | |
| run: ctest -C Release --output-on-failure -j 4 |