From c50b11780b0825e216189de191169d434e4e1b73 Mon Sep 17 00:00:00 2001 From: Francesco Biscani Date: Sun, 13 Oct 2024 13:50:04 +0200 Subject: [PATCH] Initial CI work. --- .circleci/config.yml | 63 ++++++++++--------- tools/circleci_focal_gcc9_asan.sh | 34 ---------- tools/conda_asan.sh | 38 +++++++++++ ...cal_gcc9_coverage.sh => conda_coverage.sh} | 0 ...cleci_focal_gcc9_docs.sh => conda_docs.sh} | 0 ...eci_focal_gcc9_ubsan.sh => conda_ubsan.sh} | 0 tools/lsan.supp | 1 - 7 files changed, 70 insertions(+), 66 deletions(-) delete mode 100644 tools/circleci_focal_gcc9_asan.sh create mode 100644 tools/conda_asan.sh rename tools/{circleci_focal_gcc9_coverage.sh => conda_coverage.sh} (100%) rename tools/{circleci_focal_gcc9_docs.sh => conda_docs.sh} (100%) rename tools/{circleci_focal_gcc9_ubsan.sh => conda_ubsan.sh} (100%) delete mode 100644 tools/lsan.supp diff --git a/.circleci/config.yml b/.circleci/config.yml index 0a6027dc4..ec2e98349 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,44 +1,45 @@ version: 2.1 jobs: - focal_gcc9_docs: + # focal_gcc9_docs: + # docker: + # - image: circleci/buildpack-deps:focal + # steps: + # - checkout + # - run: + # name: Build and test + # command: bash ./tools/circleci_focal_gcc9_docs.sh + # focal_gcc9_coverage: + # docker: + # - image: circleci/buildpack-deps:focal + # steps: + # - checkout + # - run: + # name: Build and test + # command: bash ./tools/circleci_focal_gcc9_coverage.sh + # focal_gcc9_ubsan: + # docker: + # - image: circleci/buildpack-deps:focal + # steps: + # - checkout + # - run: + # name: Build and test + # command: bash ./tools/circleci_focal_gcc9_ubsan.sh + conda_asan: docker: - - image: circleci/buildpack-deps:focal + - image: cimg/base:current + resource_class: large steps: - checkout - run: name: Build and test - command: bash ./tools/circleci_focal_gcc9_docs.sh - focal_gcc9_coverage: - docker: - - image: circleci/buildpack-deps:focal - steps: - - checkout - - run: - name: Build and test - command: bash ./tools/circleci_focal_gcc9_coverage.sh - focal_gcc9_ubsan: - docker: - - image: circleci/buildpack-deps:focal - steps: - - checkout - - run: - name: Build and test - command: bash ./tools/circleci_focal_gcc9_ubsan.sh - focal_gcc9_asan: - docker: - - image: circleci/buildpack-deps:focal - steps: - - checkout - - run: - name: Build and test - command: bash ./tools/circleci_focal_gcc9_asan.sh + command: bash ./tools/conda_asan.sh workflows: version: 2.1 all_builds: jobs: - - focal_gcc9_docs - - focal_gcc9_coverage - - focal_gcc9_ubsan - - focal_gcc9_asan + # - focal_gcc9_docs + # - focal_gcc9_coverage + # - focal_gcc9_ubsan + - conda_asan diff --git a/tools/circleci_focal_gcc9_asan.sh b/tools/circleci_focal_gcc9_asan.sh deleted file mode 100644 index 02bbea1bc..000000000 --- a/tools/circleci_focal_gcc9_asan.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/usr/bin/env bash - -# Echo each command -set -x - -# Exit on error. -set -e - -# Core deps. -sudo apt-get install build-essential - -wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh; -export deps_dir=$HOME/local -bash miniconda.sh -b -p $HOME/miniconda -export PATH="$HOME/miniconda/bin:$PATH" -conda config --add channels conda-forge -conda config --set channel_priority strict -conda_pkgs="cmake mppp boost-cpp tbb tbb-devel abseil-cpp backtrace fmt" -conda create -q -p $deps_dir -y $conda_pkgs -source activate $deps_dir - -# Create the build dir and cd into it. -mkdir build -cd build - -cmake ../ -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=~/.local -DCMAKE_PREFIX_PATH=~/.local -DOBAKE_BUILD_TESTS=YES -DCMAKE_CXX_FLAGS="-march=native -fsanitize=address" -DOBAKE_WITH_LIBBACKTRACE=YES -DBoost_NO_BOOST_CMAKE=ON -make -j2 VERBOSE=1 -make install -# Run the tests. Enable the custom suppression file for ASAN -# in order to suppress spurious warnings from TBB code. -LSAN_OPTIONS=suppressions=/home/circleci/project/tools/lsan.supp ctest -j4 -V - -set +e -set +x diff --git a/tools/conda_asan.sh b/tools/conda_asan.sh new file mode 100644 index 000000000..3edf490e8 --- /dev/null +++ b/tools/conda_asan.sh @@ -0,0 +1,38 @@ +#!/usr/bin/env bash + +# Echo each command +set -x + +# Exit on error. +set -e + +wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh -O miniconda.sh +export deps_dir=$HOME/local +export PATH="$HOME/miniconda/bin:$PATH" +bash miniconda.sh -b -p $HOME/miniconda +conda create -y -p $deps_dir cmake c-compiler cxx-compiler fmt backtrace mppp \ + libboost-devel libabseil tbb-devel ninja +source activate $deps_dir + +# Create the build dir and cd into it. +mkdir build +cd build + +# Clear the compilation flags set up by conda. +unset CXXFLAGS +unset CFLAGS + +cmake ../ -G Ninja \ + -DCMAKE_BUILD_TYPE=Debug \ + -DCMAKE_PREFIX_PATH=$deps_dir \ + -DOBAKE_BUILD_TESTS=YES \ + -DCMAKE_CXX_FLAGS="-fsanitize=address" \ + -DOBAKE_WITH_LIBBACKTRACE=YES \ + -DCMAKE_CXX_FLAGS_DEBUG="-g -Og" + +ninja -v + +ctest -VV -j4 + +set +e +set +x diff --git a/tools/circleci_focal_gcc9_coverage.sh b/tools/conda_coverage.sh similarity index 100% rename from tools/circleci_focal_gcc9_coverage.sh rename to tools/conda_coverage.sh diff --git a/tools/circleci_focal_gcc9_docs.sh b/tools/conda_docs.sh similarity index 100% rename from tools/circleci_focal_gcc9_docs.sh rename to tools/conda_docs.sh diff --git a/tools/circleci_focal_gcc9_ubsan.sh b/tools/conda_ubsan.sh similarity index 100% rename from tools/circleci_focal_gcc9_ubsan.sh rename to tools/conda_ubsan.sh diff --git a/tools/lsan.supp b/tools/lsan.supp deleted file mode 100644 index d74950c1f..000000000 --- a/tools/lsan.supp +++ /dev/null @@ -1 +0,0 @@ -leak:*libtbb*.so*