Repository navigation
M3C.4: compensate GPTimer START setup latency against PTP second #2575
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: C++ CI | |
| on: | |
| push: | |
| branches: [main] | |
| paths: | |
| - 'CMakeLists.txt' | |
| - 'cmake/**' | |
| - 'include/**' | |
| - 'src/**' | |
| - 'tests/**' | |
| - 'tools/**' | |
| - 'scripts/**' | |
| - 'fuzz/**' | |
| - 'embedded/**' | |
| - '.github/workflows/cpp-ci.yml' | |
| pull_request: | |
| types: [opened, synchronize, reopened, ready_for_review] | |
| paths: | |
| - 'CMakeLists.txt' | |
| - 'cmake/**' | |
| - 'include/**' | |
| - 'src/**' | |
| - 'tests/**' | |
| - 'tools/**' | |
| - 'scripts/**' | |
| - 'fuzz/**' | |
| - 'embedded/**' | |
| - '.github/workflows/cpp-ci.yml' | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: ${{ github.event_name == 'pull_request' }} | |
| jobs: | |
| wire-audit-checkpoint: | |
| # Explicit opt-in only, to avoid full GCC/Clang/MSVC/Qt/ESP-IDF fanout | |
| # while working on a Draft PR. Remove the opt-in marker after validation. | |
| if: ${{ github.event_name == 'pull_request' && github.event.pull_request.draft && contains(github.event.pull_request.body, '[run-wire-audit]') }} | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 12 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Compile only PTP-SV audit under -Werror | |
| run: | | |
| cmake -S . -B build-wire-audit -DCMAKE_BUILD_TYPE=Release \ | |
| -DARIEC61850_WARNINGS_AS_ERRORS=ON -DARIEC61850_BUILD_TESTS=ON \ | |
| -DARIEC61850_BUILD_TOOLS=ON | |
| cmake --build build-wire-audit --target ariec61850_ptp_sv_wire_audit --parallel 2 | |
| - name: Run synthetic positive/negative and streaming parity regressions | |
| run: | | |
| ctest --test-dir build-wire-audit --output-on-failure -R ariec61850_ptp_sv_wire_audit_selftest | |
| linux: | |
| if: ${{ github.event_name != 'pull_request' || !github.event.pull_request.draft }} | |
| name: Linux / ${{ matrix.compiler }} | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| compiler: [gcc, clang] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Select compiler | |
| shell: bash | |
| run: | | |
| if [[ "${{ matrix.compiler }}" == "gcc" ]]; then | |
| echo "CC=gcc" >> "$GITHUB_ENV" | |
| echo "CXX=g++" >> "$GITHUB_ENV" | |
| else | |
| echo "CC=clang" >> "$GITHUB_ENV" | |
| echo "CXX=clang++" >> "$GITHUB_ENV" | |
| fi | |
| - name: Configure | |
| run: cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DARIEC61850_WARNINGS_AS_ERRORS=ON | |
| - name: Build | |
| run: cmake --build build --parallel | |
| - name: Test | |
| run: ctest --test-dir build --output-on-failure | |
| - name: Build SCL-assisted connect wire profile | |
| run: | | |
| cmake -S tests/scl_assisted_profile -B build-scl -DCMAKE_BUILD_TYPE=Release | |
| cmake --build build-scl --target scl_assisted_connect_profile --parallel | |
| - name: Run SCL-assisted connect wire profile | |
| run: ./build-scl/scl_assisted_connect_profile | |
| - name: Cross-language model parity tool self-test | |
| run: python3 tools/compare_live_model_json.py --self-test | |
| - name: Read-only evidence runner syntax and CLI smoke | |
| run: | | |
| python3 -m py_compile scripts/run-live-readonly-interop.py | |
| python3 scripts/run-live-readonly-interop.py --help > /dev/null | |
| python3 -m py_compile scripts/run-phase4c-physical-acceptance.py | |
| python3 scripts/run-phase4c-physical-acceptance.py --help > /dev/null | |
| python3 -m py_compile scripts/run-phase4c-timeout-recovery.py | |
| python3 scripts/run-phase4c-timeout-recovery.py --help > /dev/null | |
| windows: | |
| if: ${{ github.event_name != 'pull_request' || !github.event.pull_request.draft }} | |
| name: Windows / MSVC | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Configure | |
| run: cmake -S . -B build -A x64 -DARIEC61850_WARNINGS_AS_ERRORS=ON | |
| - name: Build | |
| run: cmake --build build --config Release --parallel | |
| - name: Test | |
| run: ctest --test-dir build -C Release --output-on-failure | |
| - name: Build SCL-assisted connect wire profile | |
| run: | | |
| cmake -S tests/scl_assisted_profile -B build-scl -A x64 | |
| cmake --build build-scl --config Release --target scl_assisted_connect_profile --parallel | |
| - name: Run SCL-assisted connect wire profile | |
| run: .\build-scl\Release\scl_assisted_connect_profile.exe | |
| - name: Evidence tooling self-tests | |
| run: | | |
| python tools/compare_live_model_json.py --self-test | |
| python -m py_compile scripts/run-live-readonly-interop.py | |
| python scripts/run-live-readonly-interop.py --help | Out-Null | |
| python -m py_compile scripts/run-phase4c-physical-acceptance.py | |
| python scripts/run-phase4c-physical-acceptance.py --help | Out-Null | |
| python -m py_compile scripts/run-phase4c-timeout-recovery.py | |
| python scripts/run-phase4c-timeout-recovery.py --help | Out-Null |