ci.yml 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. name: Test Suite
  2. on:
  3. push:
  4. branches:
  5. - main
  6. pull_request:
  7. branches:
  8. - main
  9. jobs:
  10. test-suite:
  11. strategy:
  12. fail-fast: false
  13. matrix:
  14. os: [ubuntu-latest, windows-latest]
  15. build_type: [Debug, Release]
  16. build_flags: ['', '-DDOUBLE_PRECISION=ON', '-DOBJECT_LAYER_BITS=32']
  17. exclude:
  18. - os: ubuntu-latest
  19. build_type: Release
  20. runs-on: ${{ matrix.os }}
  21. name: Tests - ${{ matrix.os }} ${{ matrix.build_type }} ${{ matrix.build_flags }}
  22. steps:
  23. - uses: actions/checkout@v4
  24. with:
  25. submodules: true
  26. - name: Setup C++ Tooling
  27. uses: aminya/setup-cpp@v1
  28. with:
  29. compiler: ${{ contains(matrix.os, 'windows') && 'msvc' || 'clang' }}
  30. cmake: true
  31. - name: Configure CMake
  32. run: cmake -B build ${{ matrix.build_flags }} -DCMAKE_BUILD_TYPE=${{ matrix.build_type }}
  33. - name: Build
  34. run: cmake --build build --config=${{ matrix.build_type }}
  35. - name: Run Hello World
  36. shell: bash
  37. run: |
  38. ./build/${{ matrix.build_type }}/HelloWorld
  39. if: ${{ contains(matrix.os, 'windows') }}
  40. - name: Run Hello World
  41. shell: bash
  42. run: |
  43. ./build/HelloWorld
  44. if: ${{ !contains(matrix.os, 'windows') }}