Skip to content

feat: use Ninja instead make, bump CMake to 3.25 #2488

feat: use Ninja instead make, bump CMake to 3.25

feat: use Ninja instead make, bump CMake to 3.25 #2488

Workflow file for this run

name: CMake
on:
pull_request:
types: [opened, synchronize, reopened]
#paths-ignore:
#- docs/**
#- README.md
#- README_PYPI.md
#- cli/**
#- images/**
#- .gitignore
#- COPYING
#- pyproject.toml
#- examples/**
push:
branches:
- main
#paths-ignore:
#- docs/**
#- README.md
#- README_PYPI.md
#- cli/**
#- images/**
#- .gitignore
#- COPYING
#- pyproject.toml
#- examples/**
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
# Cancel in-progress runs when a new workflow with the same group name is triggered
cancel-in-progress: true
jobs:
run_tests:
name: Run core-tests on ${{ matrix.system.os }} with ${{ matrix.system.toolset }}, ${{matrix.cfg.BUILD_TYPE}} ${{ matrix.cfg.SANITIZER }}
continue-on-error: true
strategy:
matrix:
system:
- os: ubuntu-latest
toolset: gcc
env: CXX=g++-10
- os: ubuntu-latest
toolset: llvm-clang
env: CXX=clang++-17 CXXFLAGS="-stdlib=libc++" LDFLAGS="-lc++abi"
# Uncomment this to enable macOS GCC tests:
# - os: macos-latest
# toolset: gcc
# env: CXX=g++-14 BOOST_ROOT=/usr/local
# runtime-env: DYLD_LIBRARY_PATH=/usr/local/lib:${DYLD_LIBRARY_PATH}
# Uncomment this to enable macOS LLVM Clang tests:
# - os: macos-latest
# toolset: llvm-clang
# env: CXX=$(brew --prefix llvm@17)/bin/clang++ CXXFLAGS="-I$(brew --prefix llvm@17)/include" \
# LDFLAGS="-L$(brew --prefix llvm@17)/lib/c++" BOOST_ROOT=/usr/local
# runtime-env: DYLD_LIBRARY_PATH=/usr/local/lib:${DYLD_LIBRARY_PATH}
- os: macos-latest
toolset: apple-clang
env: CXX=clang++
cfg:
- { BUILD_TYPE: Release }
- { BUILD_TYPE: Debug }
- { BUILD_TYPE: Debug, SANITIZER : ADDRESS }
- { BUILD_TYPE: Debug, SANITIZER : UB }
runs-on: ${{ matrix.system.os }}
steps:
- uses: actions/checkout@v4
- name: Install dependencies
uses: ./.github/composite-actions/install-dependencies
with:
os: ${{ matrix.system.os }}
toolset: ${{ matrix.system.toolset }}
- name: Download datasets
uses: ./.github/composite-actions/download-datasets
- name: Build
shell: bash
run: |
export ${{ matrix.system.env }}
if [[ "${{matrix.cfg.BUILD_TYPE}}" == "Debug" ]]; then
./build.sh --debug --sanitizer=${{ matrix.cfg.SANITIZER }}
else
./build.sh
fi
- name: Test
working-directory: ${{github.workspace}}/build/target
shell: bash
run: |
export ${{ matrix.system.runtime-env }}
if [[ "${{matrix.cfg.BUILD_TYPE}}" == "Debug" && "${{ matrix.system.toolset }}" != "gcc" ]];
then
# Skip the test that lasts too long with not-gcc compilers in Debug mode
# https://github.com/Desbordante/desbordante-core/issues/516
./Desbordante_test --gtest_filter='*:-*HeavyDatasets*:AlgorithmTest/AlgorithmTest/5.LightDatasetsConsistentHash'
else
./Desbordante_test --gtest_filter='*:-*HeavyDatasets*'
fi