💚 Add LLVM 19 to CI #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: Tests | |
| on: | |
| workflow_dispatch: | |
| pull_request: | |
| push: | |
| branches: | |
| - main | |
| tags: | |
| - "v*" | |
| concurrency: | |
| group: test-${{ github.ref }} | |
| cancel-in-progress: false | |
| jobs: | |
| windows-build: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| compiler: [{ c: "clang-cl", cxx: "clang-cl" }, { c: "cl", cxx: "cl" }] | |
| name: Windows - ${{ matrix.compiler.cxx }} | |
| runs-on: windows-latest | |
| env: | |
| triplet: x64-windows | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - name: Configure VS Toolchain | |
| uses: ilammy/msvc-dev-cmd@v1 | |
| - name: Install dependencies | |
| run: vcpkg install gtest --triplet ${{ env.triplet }} | |
| - name: Build and test | |
| run: | | |
| rm -rf "${{ github.workspace }}\build" | |
| cmake -B "${{ github.workspace }}\build" -DCMAKE_TOOLCHAIN_FILE="$VCPKG_INSTALLATION_ROOT\\scripts\\buildsystems\\vcpkg.cmake" -DVCPKG_TARGET_TRIPLET=${{ env.triplet }} -DCMAKE_CXX_COMPILER=${{ matrix.compiler.cxx }} -G "Ninja Multi-Config" | |
| # cmake --build "${{ github.workspace }}\build" --config Debug --clean-first | |
| # ctest --test-dir "${{ github.workspace }}\build" -C Debug | |
| cmake --build "${{ github.workspace }}\build" --config Release --clean-first | |
| ctest --test-dir "${{ github.workspace }}\build" -C Release | |
| shell: bash | |
| ubuntu2204-build: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| compiler: | |
| [ | |
| { c: "gcc-11", cxx: "g++-11" }, | |
| ] | |
| name: Ubuntu - ${{ matrix.compiler.cxx }} | |
| runs-on: ubuntu-22.04 | |
| env: | |
| triplet: x64-linux | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - name: Install compilers | |
| run: | | |
| eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)" | |
| brew install ninja | |
| - name: Install dependencies | |
| run: vcpkg install gtest --triplet ${{ env.triplet }} | |
| - name: Build and test | |
| run: | | |
| eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)" | |
| rm -rf ${{ github.workspace }}/build | |
| cmake -B ${{ github.workspace }}/build -DCMAKE_TOOLCHAIN_FILE=$VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=${{ env.triplet }} -DCMAKE_CXX_COMPILER=${{ matrix.compiler.cxx }} -G "Ninja Multi-Config" | |
| cmake --build ${{ github.workspace }}/build --config Debug --clean-first | |
| ctest --test-dir ${{ github.workspace }}/build -C Debug | |
| cmake --build ${{ github.workspace }}/build --config Release --clean-first | |
| ctest --test-dir ${{ github.workspace }}/build -C Release | |
| ubuntu2404-build: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| compiler: | |
| [ | |
| { c: "gcc-12", cxx: "g++-12" }, | |
| { c: "gcc-13", cxx: "g++-13" }, | |
| { c: "gcc-14", cxx: "g++-14" }, | |
| { | |
| c: "$(brew --prefix llvm@15)/bin/clang", | |
| cxx: "$(brew --prefix llvm@15)/bin/clang++", | |
| }, | |
| { | |
| c: "$(brew --prefix llvm@16)/bin/clang", | |
| cxx: "$(brew --prefix llvm@16)/bin/clang++", | |
| }, | |
| { | |
| c: "$(brew --prefix llvm@17)/bin/clang", | |
| cxx: "$(brew --prefix llvm@17)/bin/clang++", | |
| }, | |
| { | |
| c: "$(brew --prefix llvm@18)/bin/clang", | |
| cxx: "$(brew --prefix llvm@18)/bin/clang++", | |
| }, | |
| { | |
| c: "$(brew --prefix llvm@19)/bin/clang", | |
| cxx: "$(brew --prefix llvm@19)/bin/clang++", | |
| }, | |
| ] | |
| name: Ubuntu - ${{ matrix.compiler.cxx }} | |
| runs-on: ubuntu-24.04 | |
| env: | |
| triplet: x64-linux | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - name: Install compilers | |
| run: | | |
| eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)" | |
| brew install ninja llvm@15 llvm@16 llvm@17 llvm@18 llvm@19 | |
| - name: Install dependencies | |
| run: vcpkg install gtest --triplet ${{ env.triplet }} | |
| - name: Build and test | |
| run: | | |
| eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)" | |
| rm -rf ${{ github.workspace }}/build | |
| cmake -B ${{ github.workspace }}/build -DCMAKE_TOOLCHAIN_FILE=$VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=${{ env.triplet }} -DCMAKE_CXX_COMPILER=${{ matrix.compiler.cxx }} -G "Ninja Multi-Config" | |
| cmake --build ${{ github.workspace }}/build --config Debug --clean-first | |
| ctest --test-dir ${{ github.workspace }}/build -C Debug | |
| cmake --build ${{ github.workspace }}/build --config Release --clean-first | |
| ctest --test-dir ${{ github.workspace }}/build -C Release | |
| macos-build: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| compiler: | |
| [ | |
| { c: "gcc-12", cxx: "g++-12" }, | |
| { c: "gcc-13", cxx: "g++-13" }, | |
| { c: "gcc-14", cxx: "g++-14" }, | |
| { | |
| c: "$(brew --prefix llvm@16)/bin/clang", | |
| cxx: "$(brew --prefix llvm@16)/bin/clang++", | |
| }, | |
| { | |
| c: "$(brew --prefix llvm@17)/bin/clang", | |
| cxx: "$(brew --prefix llvm@17)/bin/clang++", | |
| }, | |
| { | |
| c: "$(brew --prefix llvm@18)/bin/clang", | |
| cxx: "$(brew --prefix llvm@18)/bin/clang++", | |
| }, | |
| { | |
| c: "$(brew --prefix llvm@19)/bin/clang", | |
| cxx: "$(brew --prefix llvm@19)/bin/clang++", | |
| }, | |
| ] | |
| name: MacOS - ${{ matrix.compiler.cxx }} | |
| runs-on: macos-latest | |
| env: | |
| triplet: arm64-osx | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - name: Install compilers | |
| run: brew install ninja llvm@16 llvm@17 llvm@18 llvm@19 | |
| - name: Install dependencies | |
| run: | | |
| git clone --depth=1 https://github.com/microsoft/vcpkg.git | |
| ./vcpkg/bootstrap-vcpkg.sh | |
| CC=${{ matrix.compiler.c }} CXX=${{ matrix.compiler.cxx }} ./vcpkg/vcpkg install gtest --triplet ${{ env.triplet }} | |
| - name: Build and test | |
| run: | | |
| rm -rf ${{ github.workspace }}/build | |
| cmake -B ${{ github.workspace }}/build -DCMAKE_TOOLCHAIN_FILE=./vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=${{ env.triplet }} -DCMAKE_CXX_COMPILER=${{ matrix.compiler.cxx }} -G "Ninja Multi-Config" | |
| cmake --build ${{ github.workspace }}/build --config Debug --clean-first | |
| ctest --test-dir ${{ github.workspace }}/build -C Debug | |
| cmake --build ${{ github.workspace }}/build --config Release --clean-first | |
| ctest --test-dir ${{ github.workspace }}/build -C Release |