name: Ubuntu 24.04 CI

on: [push, pull_request]
jobs:
  ubuntu-build:
    if: >-
      ! contains(toJSON(github.event.commits.*.message), '[skip ci]') &&
      ! contains(toJSON(github.event.commits.*.message), '[skip github]')
    runs-on: ubuntu-24.04
    strategy:
      matrix:
        shared: [ON, OFF]
        cxx: [g++-13, clang++-16]
        sanitizer: [ON, OFF]
        build_type: [RelWithDebInfo, Debug, Release]
    steps:
      - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
      - name: Prepare
        run: cmake -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DSIMDJSON_DEVELOPER_MODE=ON -DSIMDJSON_SANITIZE=${{matrix.sanitizer}} -DBUILD_SHARED_LIBS=${{matrix.shared}}  -B build
        env:
          CXX: ${{matrix.cxx}}
      - name: Build
        run: cmake --build build -j=2
      - name: Test
        run: ctest --output-on-failure --test-dir build