Skip to content

Fix configuration generation #784

Fix configuration generation

Fix configuration generation #784

Workflow file for this run

name: VaRA Feature Library Build
on:
push:
branches: [vara, vara-dev]
pull_request:
branches: [vara, vara-dev]
jobs:
build:
runs-on: ubuntu-22.04
strategy:
fail-fast: true
matrix:
build: [Debug, Release]
llvm-major: [14]
compiler: [clang++-14, clang++-15, g++-9]
include:
- llvm-major: 14
llvm-minor: 0
exclude:
- llvm-major: 14
compiler: clang++-15
continue-on-error: false
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
submodules: recursive
- name: Install General Dependencies
shell: bash
run: |
sudo apt-key adv --fetch-keys https://apt.kitware.com/keys/kitware-archive-latest.asc
sudo apt-add-repository -y 'deb https://apt.kitware.com/ubuntu/ focal main'
sudo apt-get update
sudo apt-get -y install --no-install-recommends cmake libstdc++6 libxml2-dev python3-dev graphviz gcc-9 g++-9
- name: Download and Install Z3 4.11.2
shell: bash
run: |
cd /tmp/
wget https://github.com/Z3Prover/z3/releases/download/z3-4.11.2/z3-4.11.2-x64-glibc-2.31.zip
unzip z3-4.11.2-x64-glibc-2.31.zip
sudo cp z3-4.11.2-x64-glibc-2.31/include/* /usr/include/
sudo cp z3-4.11.2-x64-glibc-2.31/bin/libz3.so /usr/lib/x86_64-linux-gnu/
- name: Install Strategy Dependencies
shell: bash
run: |
sudo apt-key adv --fetch-keys https://apt.llvm.org/llvm-snapshot.gpg.key
sudo add-apt-repository -y 'deb http://apt.llvm.org/focal/ llvm-toolchain-focal-14 main'
sudo add-apt-repository -y 'deb http://apt.llvm.org/focal/ llvm-toolchain-focal-15 main'
sudo apt-get update
sudo apt-get -y install --no-install-recommends clang-${{ matrix.llvm-major }} llvm-${{ matrix.llvm-major }}-dev clang-tidy-14
- name: Workaround for sanitizer
shell: bash
run: |
sudo apt-get update
sudo apt download libclang-rt-14-dev
sudo dpkg --force-all -i libclang-rt-14-dev*
- name: Build ${{ matrix.build }} with LLVM ${{ matrix.llvm-major }}
env:
BUILD_TYPE: ${{ matrix.build }}
LLVM_VERSION: ${{ matrix.llvm-major }}.${{ matrix.llvm-minor }}
CXX: ${{ matrix.compiler }}
shell: bash
run: |
mkdir build
cd build
cmake .. \
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
-DLLVM_REQUESTED_VERSION=$LLVM_VERSION \
-DCMAKE_CXX_COMPILER=$CXX \
-DVARA_FEATURE_SANITIZE=True \
-DVARA_FEATURE_BUILD_PYTHON_BINDINGS=False \
-DVARA_FEATURE_USE_Z3_SOLVER=True \
-DVARA_FEATURE_BUILD_Z3_SOLVER=False \
-DPYTHON_EXECUTABLE=$(which python3)
cmake --build . -- -j
- name: Run Tests
if: ${{ matrix.build == 'Release' }}
shell: bash
run: |
cd build
cmake --build . --target check-vara-feature-unittests
cmake --build . --target check-vara-fm-viewer
cmake --build . --target check-vara-config-generator
- name: Run Tests (Cov)
env:
CXX: ${{ matrix.compiler }}
if: ${{ matrix.build == 'Debug' }}
shell: bash
run: |
cd build
cmake . -DVARA_FEATURE_ENABLE_COVERAGE=True
cmake --build . --target check-vara-feature-unittests
cmake --build . --target check-vara-fm-viewer
cmake --build . --target check-vara-config-generator
./scripts/ci_utils/prepare_coverage_data.py
bash <(curl -s https://codecov.io/bash)
- name: Run Clang-Tidy
shell: bash
run: |
cd build
cmake --build . --target tidy-vara-feature
- name: Build Python Bindings
env:
BUILD_TYPE: ${{ matrix.build }}
LLVM_VERSION: ${{ matrix.llvm-major }}.${{ matrix.llvm-minor }}
CXX: ${{ matrix.compiler }}
shell: bash
run: |
cd build
cmake .. \
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
-DLLVM_REQUESTED_VERSION=$LLVM_VERSION \
-DCMAKE_CXX_COMPILER=$CXX \
-DVARA_FEATURE_SANITIZE=False \
-DVARA_FEATURE_BUILD_PYTHON_BINDINGS=True \
-DVARA_FEATURE_USE_Z3_SOLVER=True \
-DPYTHON_EXECUTABLE=$(which python3)
cmake --build . -- -j
- name: Run Python Binding Tests
shell: bash
run: |
cd build
cmake --build . --target check-vara-feature-python