|
11 | 11 | fail-fast: false |
12 | 12 | matrix: |
13 | 13 | os: ["macos-latest", "macos-13"] |
| 14 | + format: ["JSON", "AVRO", "CAPNPROTO", "CBOR", "FLEXBUFFERS", "MSGPACK", "XML", "TOML", "UBJSON", "YAML"] |
| 15 | + name: "${{ matrix.os }} (${{ matrix.format }})" |
14 | 16 | runs-on: ${{ matrix.os }} |
15 | 17 | steps: |
16 | 18 | - name: Checkout |
@@ -39,26 +41,12 @@ jobs: |
39 | 41 | export CMAKE_GENERATOR=Ninja |
40 | 42 | fi |
41 | 43 | $CXX --version |
42 | | - cmake -S . -B build -DCMAKE_CXX_STANDARD=20 -DREFLECTCPP_BUILD_TESTS=ON -DREFLECTCPP_BUILD_BENCHMARKS=ON -DREFLECTCPP_BSON=ON -DREFLECTCPP_CAPNPROTO=ON -DREFLECTCPP_CBOR=ON -DREFLECTCPP_FLEXBUFFERS=ON -DREFLECTCPP_MSGPACK=ON -DREFLECTCPP_TOML=ON -DREFLECTCPP_XML=ON -DREFLECTCPP_YAML=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ |
| 44 | + if [[ "${{ matrix.format == 'JSON' }}" == "true" ]]; then |
| 45 | + cmake -S . -B build -DCMAKE_CXX_STANDARD=20 -DREFLECTCPP_BUILD_TESTS=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ |
| 46 | + else |
| 47 | + cmake -S . -B build -DCMAKE_CXX_STANDARD=20 -DREFLECTCPP_BUILD_TESTS=ON -DREFLECTCPP_JSON=OFF -DREFLECTCPP_${{ matrix.format }}=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ |
| 48 | + fi |
43 | 49 | cmake --build build -j 4 |
44 | 50 | - name: Run tests |
45 | 51 | run: | |
46 | 52 | ctest --test-dir build --output-on-failure |
47 | | - - name: Run benchmarks |
48 | | - run: | |
49 | | - echo '# Benchmarks' >> $GITHUB_STEP_SUMMARY |
50 | | - echo '## Benchmarks across different formats' >> $GITHUB_STEP_SUMMARY |
51 | | - echo '```' >> $GITHUB_STEP_SUMMARY |
52 | | - ./build/benchmarks/all/reflect-cpp-all-format-benchmarks --benchmark_filter=canada_read >> $GITHUB_STEP_SUMMARY |
53 | | - ./build/benchmarks/all/reflect-cpp-all-format-benchmarks --benchmark_filter=canada_write >> $GITHUB_STEP_SUMMARY |
54 | | - ./build/benchmarks/all/reflect-cpp-all-format-benchmarks --benchmark_filter=licenses_read >> $GITHUB_STEP_SUMMARY |
55 | | - ./build/benchmarks/all/reflect-cpp-all-format-benchmarks --benchmark_filter=licenses_write >> $GITHUB_STEP_SUMMARY |
56 | | - ./build/benchmarks/all/reflect-cpp-all-format-benchmarks --benchmark_filter=person_read >> $GITHUB_STEP_SUMMARY |
57 | | - ./build/benchmarks/all/reflect-cpp-all-format-benchmarks --benchmark_filter=person_write >> $GITHUB_STEP_SUMMARY |
58 | | - echo '```' >> $GITHUB_STEP_SUMMARY |
59 | | - echo '## Benchmarks for JSON' >> $GITHUB_STEP_SUMMARY |
60 | | - echo '```' >> $GITHUB_STEP_SUMMARY |
61 | | - ./build/benchmarks/json/reflect-cpp-json-benchmarks --benchmark_filter=person_read >> $GITHUB_STEP_SUMMARY |
62 | | - ./build/benchmarks/json/reflect-cpp-json-benchmarks --benchmark_filter=canada >> $GITHUB_STEP_SUMMARY |
63 | | - ./build/benchmarks/json/reflect-cpp-json-benchmarks --benchmark_filter=licenses >> $GITHUB_STEP_SUMMARY |
64 | | - echo '```' >> $GITHUB_STEP_SUMMARY |
0 commit comments