name: Run tests with sanitizers on: schedule: - cron: "0 4 * * 1-5" workflow_dispatch: pull_request: paths: - .github/workflows/sanitizers.yml - .github/workflows/reusable-build-test.yml - .github/workflows/reusable-build.yml - .github/workflows/reusable-test.yml - ".github/actions/**" - "!.github/actions/build-docker-image/**" - "!.github/actions/create-issue/**" - .github/scripts/execute-tests-under-sanitizer.sh - CMakeLists.txt - conanfile.py - conan.lock - "cmake/**" # We don't run sanitizer on code change, because it takes too long # - "src/**" # - "tests/**" concurrency: # Only cancel in-progress jobs or runs for the current workflow - matches against branch & tags group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: build-and-test: name: Build and Test strategy: fail-fast: false matrix: compiler: [gcc, clang] sanitizer_ext: [.asan, .tsan, .ubsan] build_type: [Release, Debug] uses: ./.github/workflows/reusable-build-test.yml with: runs_on: heavy container: '{ "image": "ghcr.io/xrplf/clio-ci:c117f470f2ef954520ab5d1c8a5ed2b9e68d6f8a" }' download_ccache: false upload_ccache: false conan_profile: ${{ matrix.compiler }}${{ matrix.sanitizer_ext }} build_type: ${{ matrix.build_type }} static: false # Currently, both gcc.tsan and clang.tsan unit tests hang run_unit_tests: ${{ matrix.sanitizer_ext != '.tsan' }} run_integration_tests: false upload_clio_server: false targets: clio_tests clio_integration_tests