Repository navigation
IED simulator: IEC 61850 DPC control command golden parity #289
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: SCL-Assisted Workbench CI | |
| on: | |
| push: | |
| paths: | |
| - 'apps/ied_simulator/src/MmsClientController.*' | |
| - 'apps/ied_simulator/src/MmsLiveTreeModel.*' | |
| - 'apps/ied_simulator/src/MmsSclClientProjection.hpp' | |
| - 'apps/ied_simulator/src/ied_mms_scl_assisted_workbench_qa.cpp' | |
| - 'apps/ied_simulator/tests/scl_assisted_workbench/**' | |
| - 'apps/ied_simulator/qml/Main.qml' | |
| - 'apps/ied_simulator/qml/MmsClientWorkspace.qml' | |
| - 'include/ariec61850/mms/**' | |
| - 'src/mms/**' | |
| - 'include/ariec61850/scl/**' | |
| - 'src/scl/**' | |
| - 'tests/fixtures/scl/client-workbench.scd' | |
| - 'tests/fixtures/scl/client-workbench-incompatible.scd' | |
| - '.github/workflows/scl-assisted-workbench-ci.yml' | |
| pull_request: | |
| paths: | |
| - 'apps/ied_simulator/src/MmsClientController.*' | |
| - 'apps/ied_simulator/src/MmsLiveTreeModel.*' | |
| - 'apps/ied_simulator/src/MmsSclClientProjection.hpp' | |
| - 'apps/ied_simulator/src/ied_mms_scl_assisted_workbench_qa.cpp' | |
| - 'apps/ied_simulator/tests/scl_assisted_workbench/**' | |
| - 'apps/ied_simulator/qml/Main.qml' | |
| - 'apps/ied_simulator/qml/MmsClientWorkspace.qml' | |
| - 'include/ariec61850/mms/**' | |
| - 'src/mms/**' | |
| - 'include/ariec61850/scl/**' | |
| - 'src/scl/**' | |
| - 'tests/fixtures/scl/client-workbench.scd' | |
| - 'tests/fixtures/scl/client-workbench-incompatible.scd' | |
| - '.github/workflows/scl-assisted-workbench-ci.yml' | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: scl-assisted-workbench-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| product-path: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Qt | |
| uses: jurplel/install-qt-action@v4 | |
| with: | |
| version: '6.8.3' | |
| cache: true | |
| - name: Configure P5 workbench gate | |
| run: >- | |
| cmake -S apps/ied_simulator/tests/scl_assisted_workbench | |
| -B build-scl-assisted-workbench -G Ninja | |
| -DCMAKE_BUILD_TYPE=Release | |
| - name: Build P5 workbench gate | |
| run: >- | |
| cmake --build build-scl-assisted-workbench | |
| --target ied_mms_scl_assisted_workbench_qa --parallel 2 | |
| - name: Run trusted-SCL degraded product-path regression | |
| env: | |
| QT_QPA_PLATFORM: offscreen | |
| run: >- | |
| ./build-scl-assisted-workbench/ied_mms_scl_assisted_workbench_qa | |
| ./tests/fixtures/scl/client-workbench.scd | |
| - name: Prove incompatible trusted SCL fails closed | |
| env: | |
| QT_QPA_PLATFORM: offscreen | |
| shell: bash | |
| run: | | |
| set +e | |
| output="$(./build-scl-assisted-workbench/ied_mms_scl_assisted_workbench_qa ./tests/fixtures/scl/client-workbench-incompatible.scd 2>&1)" | |
| status=$? | |
| set -e | |
| printf '%s\n' "$output" | |
| test "$status" -eq 5 | |
| grep -F "SCL online identity incompatible" <<<"$output" | |
| ! grep -F "Live MMS discovery" <<<"$output" | |
| echo "MMS_SCL_INCOMPATIBLE_WORKBENCH_PASS connected=false health=incompatible silent_fallback=false" |