Updates CI to Ubuntu 22.04 (#127) #782
This file contains 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: 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 |