Skip to content

Sentinel support for timsort and timmerge #69

Sentinel support for timsort and timmerge

Sentinel support for timsort and timmerge #69

Workflow file for this run

# Copyright (c) 2021-2024 Morwenn
# SPDX-License-Identifier: MIT
name: Ubuntu Builds
on:
push:
paths:
- '.github/workflows/build-ubuntu.yml'
- 'CMakeLists.txt'
- 'cmake/**'
- 'include/gfx/timsort.hpp'
- 'tests/*'
pull_request:
paths:
- '.github/workflows/build-ubuntu.yml'
- 'CMakeLists.txt'
- 'cmake/**'
- 'include/gfx/timsort.hpp'
- 'tests/*'
jobs:
build:
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
cxx:
- g++-10
- clang++-11
config:
# Release build
- build_type: Release
# Debug builds
- build_type: Debug
valgrind: ON
- build_type: Debug
sanitize: address
- build_type: Debug
sanitize: undefined
steps:
- uses: actions/checkout@v4
- name: Install Valgrind
if: ${{matrix.config.valgrind == 'ON'}}
run: sudo apt update && sudo apt install -y valgrind
- name: Configure CMake
working-directory: ${{runner.workspace}}
env:
CXX: ${{matrix.cxx}}
run: |
cmake -H${{github.event.repository.name}} -Bbuild \
-DCMAKE_CONFIGURATION_TYPES=${{matrix.config.build_type}} \
-DCMAKE_BUILD_TYPE=${{matrix.config.build_type}} \
-DGFX_TIMSORT_SANITIZE=${{matrix.config.sanitize}} \
-DGFX_TIMSORT_USE_VALGRIND=${{matrix.config.valgrind}} \
-G"Unix Makefiles" \
-DBUILD_BENCHMARKS=ON
- name: Build the test suite
shell: bash
working-directory: ${{runner.workspace}}/build
run: cmake --build . --config ${{matrix.config.build_type}} -j 2
- name: Run the test suite
if: ${{matrix.config.valgrind != 'ON'}}
env:
CTEST_OUTPUT_ON_FAILURE: 1
working-directory: ${{runner.workspace}}/build
run: ctest -C ${{matrix.config.build_type}}
- name: Run the test suite with Memcheck
if: ${{matrix.config.valgrind == 'ON'}}
env:
CTEST_OUTPUT_ON_FAILURE: 1
working-directory: ${{runner.workspace}}/build
run: |
ctest -T memcheck -C ${{matrix.config.build_type}} -j 2
find ./Testing/Temporary -name "MemoryChecker.*.log" -size +1300c | xargs cat;