feat(ntp): eternal singleton for NtpTimeService with optional DLL linkage #224
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [ main ] | |
| pull_request: | |
| branches: [ main ] | |
| jobs: | |
| linux: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| std: [11, 17] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Configure | |
| run: cmake -S . -B build -DTIME_SHIELD_CPP_BUILD_TESTS=ON -DCMAKE_CXX_STANDARD=${{ matrix.std }} | |
| - name: Build | |
| run: cmake --build build | |
| - name: Install | |
| run: cmake --install build --prefix install | |
| - name: Test | |
| run: ctest --test-dir build | |
| - name: Show CTest last log | |
| if: always() | |
| run: | | |
| echo "=== build/Testing/Temporary/LastTest.log ===" | |
| cat build/Testing/Temporary/LastTest.log || true | |
| - name: Rerun failed tests verbosely | |
| if: always() | |
| run: ctest --test-dir build --rerun-failed --output-on-failure || true | |
| - name: Upload CTest logs | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ctest-logs-${{ runner.os }}-cxx${{ matrix.std }} | |
| path: | | |
| build/Testing/Temporary/LastTest.log | |
| build/Testing/** | |
| - name: Configure consumer project | |
| run: cmake -S tests/install_consumer -B build-consumer -DCMAKE_PREFIX_PATH=${{ github.workspace }}/install -DCMAKE_CXX_STANDARD=${{ matrix.std }} | |
| - name: Build consumer project | |
| run: cmake --build build-consumer | |
| windows: | |
| runs-on: windows-latest | |
| strategy: | |
| matrix: | |
| std: [11, 17] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Configure | |
| run: cmake -S . -B build -DTIME_SHIELD_CPP_BUILD_TESTS=ON -DCMAKE_CXX_STANDARD=${{ matrix.std }} | |
| - name: Build | |
| run: cmake --build build --config Release | |
| - name: Install | |
| run: cmake --install build --prefix install --config Release | |
| - name: Test | |
| shell: bash | |
| run: ctest --test-dir build -C Release | |
| - name: Show CTest last log | |
| if: always() | |
| shell: bash | |
| run: | | |
| echo "=== build/Testing/Temporary/LastTest.log ===" | |
| cat build/Testing/Temporary/LastTest.log || true | |
| - name: Rerun failed tests verbosely | |
| if: always() | |
| shell: bash | |
| run: ctest --test-dir build -C Release --rerun-failed --output-on-failure || true | |
| - name: Upload CTest logs | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ctest-logs-${{ runner.os }}-cxx${{ matrix.std }} | |
| path: | | |
| build/Testing/Temporary/LastTest.log | |
| build/Testing/** | |
| - name: Configure consumer project | |
| run: cmake -S tests/install_consumer -B build-consumer -DCMAKE_PREFIX_PATH="${{ github.workspace }}/install" -DCMAKE_CXX_STANDARD=${{ matrix.std }} | |
| - name: Build consumer project | |
| run: cmake --build build-consumer --config Release | |
| macos: | |
| runs-on: macos-latest | |
| strategy: | |
| matrix: | |
| std: [11, 17] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Configure | |
| run: cmake -S . -B build -DTIME_SHIELD_CPP_BUILD_TESTS=ON -DCMAKE_CXX_STANDARD=${{ matrix.std }} | |
| - name: Build | |
| run: cmake --build build | |
| - name: Install | |
| run: cmake --install build --prefix install | |
| - name: Test | |
| run: ctest --test-dir build | |
| - name: Show CTest last log | |
| if: always() | |
| run: | | |
| echo "=== build/Testing/Temporary/LastTest.log ===" | |
| cat build/Testing/Temporary/LastTest.log || true | |
| - name: Rerun failed tests verbosely | |
| if: always() | |
| run: ctest --test-dir build --rerun-failed --output-on-failure || true | |
| - name: Upload CTest logs | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ctest-logs-${{ runner.os }}-cxx${{ matrix.std }} | |
| path: | | |
| build/Testing/Temporary/LastTest.log | |
| build/Testing/** | |
| - name: Configure consumer project | |
| run: cmake -S tests/install_consumer -B build-consumer -DCMAKE_PREFIX_PATH=${{ github.workspace }}/install -DCMAKE_CXX_STANDARD=${{ matrix.std }} | |
| - name: Build consumer project | |
| run: cmake --build build-consumer | |
| vcpkg-install: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install vcpkg | |
| run: | | |
| git clone https://github.com/microsoft/vcpkg.git | |
| ./vcpkg/bootstrap-vcpkg.sh -disableMetrics | |
| - name: Validate port | |
| run: ./vcpkg/vcpkg install time-shield-cpp --overlay-ports=vcpkg-overlay/ports | |
| - name: Configure consumer project | |
| run: cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE=./vcpkg/scripts/buildsystems/vcpkg.cmake | |
| - name: Build consumer project | |
| run: cmake --build build |