--- kind: pipeline type: docker name: unit tests clone: recursive: true submodule_update_remote: true trigger: branch: - main steps: - name: unit tests image: unit_tests:latest pull: if-not-exists commands: - | set -e git submodule update --init --recursive conan build . \ -c tools.system.package_manager:mode=install \ -c tools.cmake.cmaketoolchain:generator=Ninja \ -s build_type=Release \ -o enable_static_analysis=False \ -o enable_tests=True \ --build=missing for test in $(find ./build -type f -name '*_tests' -executable); do echo "Running $test" "$test" done --- kind: pipeline type: docker name: valgrind clone: recursive: true submodule_update_remote: true trigger: branch: - main steps: - name: valgrind image: valgrind:latest pull: if-not-exists commands: - | set -e git submodule update --init --recursive conan build . \ -c tools.system.package_manager:mode=install \ -c tools.cmake.cmaketoolchain:generator=Ninja \ -s build_type=Release \ -o enable_static_analysis=False \ -o enable_tests=True \ --build=missing find ./build -type f -name "*_tests" -executable | xargs -I {} bash -c 'valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes --verbose --error-exitcode=255 {}' || exit 1 --- kind: pipeline type: docker name: leak sanitizer clone: recursive: true submodule_update_remote: true trigger: branch: - main steps: - name: leak sanitizer image: leak_sanitizer:latest pull: if-not-exists commands: - | set -e git submodule update --init --recursive conan build . \ -s build_type=Release \ -s compiler=clang \ -s compiler.version=20 \ -s compiler.libcxx=libc++ \ -c tools.system.package_manager:mode=install \ -c tools.cmake.cmaketoolchain:generator=Ninja \ -c tools.build:cxxflags='["-g", "-fno-omit-frame-pointer", "-nostdinc++", "-isystem", "/libcxx_lsan/include/c++/v1/", "-fsanitize=leak"]' \ -c tools.build:sharedlinkflags='["-L/libcxx_lsan/lib", "-Wl,-rpath,/libcxx_lsan/lib", "-lc++", "-lc++abi", "-fsanitize=leak"]' \ -c tools.build:exelinkflags='["-L/libcxx_lsan/lib", "-Wl,-rpath,/libcxx_lsan/lib", "-lc++", "-lc++abi", "-fsanitize=leak"]' \ -c tools.info.package_id:confs='["tools.build:cxxflags","tools.build:sharedlinkflags","tools.build:exelinkflags"]' \ -c tools.build:compiler_executables='{"c": "clang", "cpp": "clang++"}' \ -o enable_static_analysis=False \ -o enable_tests=True \ --build=missing for test in $(find ./build -type f -name '*_tests' -executable); do echo "Running $test" "$test" done --- kind: pipeline type: docker name: static analysis clone: recursive: true submodule_update_remote: true trigger: branch: - main steps: - name: static_analysis image: static_analysis:latest pull: if-not-exists privileged: true commands: - | git submodule update --init --recursive conan build . \ -c tools.system.package_manager:mode=install \ -c tools.cmake.cmaketoolchain:generator=Ninja \ -s build_type=Debug \ -o enable_static_analysis=True \ -o enable_tests=True \ --build=missing --- kind: pipeline type: docker name: clang format clone: recursive: true submodule_update_remote: true trigger: branch: - main steps: - name: clang format image: clang_format:latest pull: if-not-exists commands: - | set -e clang-format --version has_fomatting_issues=0 for file in $(find ./modules -name '*.?pp'); do echo "Checking format for $file" if ! clang-format --dry-run --Werror "$file"; then echo "❌ Formatting issue detected in $file" has_fomatting_issues=1 fi done if [ "$has_fomatting_issues" -eq 0 ]; then echo "✅ All files are properly formatted! Well done! ^~^" fi exit ${has_fomatting_issues}