Skip to content

Use TemplateArgument to correctly handle partial specializations. #63

Use TemplateArgument to correctly handle partial specializations.

Use TemplateArgument to correctly handle partial specializations. #63

Workflow file for this run

name: Tests
on:
push:
jobs:
build:
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
clang_version: [14, 15, 16, 17]
steps:
- uses: actions/checkout@v3
- run: sudo add-apt-repository ppa:ubuntu-toolchain-r/ppa
- run: sudo apt-get update
- name: Remove clang-version
run: sudo apt-get remove clang-${{ matrix.clang_version }}
continue-on-error: true
- name: Remove clang
run: sudo apt-get remove clang
continue-on-error: true
- name: Remove llvm
run: sudo apt-get remove llvm-${{ matrix.clang_version }}
continue-on-error: true
- name: Remove llvm-dev
run: sudo apt-get remove llvm-${{ matrix.clang_version }}-dev
continue-on-error: true
- name: Remove llvm-runtime
run: sudo apt-get remove llvm-${{ matrix.clang_version }}-runtime
continue-on-error: true
- name: Remove libclang-dev
run: sudo apt-get remove libclang-${{ matrix.clang_version }}-dev
continue-on-error: true
- name: Remove libclang-cpp
run: sudo apt-get remove libclang-cpp${{ matrix.clang_version }}
continue-on-error: true
- name: Remove libclang-cpp-dev
run: sudo apt-get remove libclang-cpp${{ matrix.clang_version }}-dev
continue-on-error: true
- name: Install LLVM and Clang
uses: KyleMayes/install-llvm-action@v2
with:
version: ${{ matrix.clang_version }}
env: true
- name: Symlink libclang.so (Linux)
run: sudo ln -s libclang-${{ matrix.clang_version }}.so.1 /lib/x86_64-linux-gnu/libclang.so
working-directory: ${{ env.LLVM_PATH }}/lib
- name: Setup BATS
uses: mig4/setup-bats@v1
with:
bats-version: 1.10.0
- run: clang++ --version
- run: clang-format --version
- run: cmake --version
- run: bats --version
- name: Create Build Environment
run: cmake -E make_directory ${{runner.workspace}}/build
- name: Configure CMake
shell: bash
working-directory: ${{runner.workspace}}/build
env:
CXX: clang++
CXX_FLAGS: /usr/lib/llvm-${{ matrix.clang_version }}/lib/clang/${{ matrix.clang_version }}.0.0/include
run: cmake $GITHUB_WORKSPACE -DLLVM_ROOT=/usr/lib/llvm-${{ matrix.clang_version }}/cmake -DClang_DIR=/usr/lib/llvm-${{ matrix.clang_version }}/lib/cmake/clang
- name: Build Instantiator
working-directory: ${{runner.workspace}}/build
shell: bash
run: cmake --build . -- -j2
- name: Install Instantiator
working-directory: ${{runner.workspace}}/build
shell: bash
run: sudo cmake --build . --target install -- -j2
- name: Test
working-directory: ${{runner.workspace}}
shell: bash
run: bats -T --print-output-on-failure .