Repository navigation
[Superseded by #41] Add portable static IEC 61850 server adapter #109
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: Embedded Hard Profile CI | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| permissions: | |
| contents: read | |
| jobs: | |
| hard-embedded-profile: | |
| name: Hard Embedded / ${{ 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 }}" = "clang" ]; then | |
| echo "CC=clang" >> "$GITHUB_ENV" | |
| echo "CXX=clang++" >> "$GITHUB_ENV" | |
| else | |
| echo "CC=gcc" >> "$GITHUB_ENV" | |
| echo "CXX=g++" >> "$GITHUB_ENV" | |
| fi | |
| - name: Configure hard profile | |
| run: cmake -S embedded/hard_profile -B build-hard-embedded | |
| - name: Build hard profile | |
| run: cmake --build build-hard-embedded --parallel | |
| - name: Run hard-profile smokes | |
| run: >- | |
| ctest --test-dir build-hard-embedded | |
| --output-on-failure | |
| --output-junit hard-embedded-ctest.xml | |
| - name: Prove exception runtime is absent | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| for binary in \ | |
| build-hard-embedded/ariec61850_hard_sv_smoke \ | |
| build-hard-embedded/ariec61850_hard_goose_smoke \ | |
| build-hard-embedded/ariec61850_hard_osi_transport_smoke \ | |
| build-hard-embedded/ariec61850_hard_session_presentation_smoke \ | |
| build-hard-embedded/ariec61850_hard_association_smoke \ | |
| build-hard-embedded/ariec61850_hard_mms_pdu_smoke \ | |
| build-hard-embedded/ariec61850_hard_mms_get_name_list_smoke \ | |
| build-hard-embedded/ariec61850_hard_mms_static_model_smoke \ | |
| build-hard-embedded/ariec61850_hard_mms_write_smoke \ | |
| build-hard-embedded/ariec61850_hard_mms_dispatcher_smoke \ | |
| build-hard-embedded/ariec61850_hard_mms_connection_runtime_smoke \ | |
| build-hard-embedded/ariec61850_hard_mms_data_set_smoke \ | |
| build-hard-embedded/ariec61850_hard_mms_information_report_smoke \ | |
| build-hard-embedded/ariec61850_hard_mms_urcb_runtime_smoke \ | |
| build-hard-embedded/ariec61850_hard_mms_urcb_objects_smoke \ | |
| build-hard-embedded/ariec61850_hard_mms_report_connection_smoke; do | |
| if nm -C "$binary" | grep -E '__cxa_throw|__cxa_begin_catch|__cxa_end_catch|__gxx_personality_v0'; then | |
| echo "exception runtime symbol found in $binary" >&2 | |
| exit 1 | |
| fi | |
| done | |
| echo 'NO_EXCEPTION_RUNTIME=PASS' | |
| - name: Report hard-profile footprint | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| { | |
| echo "compiler=${{ matrix.compiler }}" | |
| size \ | |
| build-hard-embedded/ariec61850_hard_sv_smoke \ | |
| build-hard-embedded/ariec61850_hard_goose_smoke \ | |
| build-hard-embedded/ariec61850_hard_osi_transport_smoke \ | |
| build-hard-embedded/ariec61850_hard_session_presentation_smoke \ | |
| build-hard-embedded/ariec61850_hard_association_smoke \ | |
| build-hard-embedded/ariec61850_hard_mms_pdu_smoke \ | |
| build-hard-embedded/ariec61850_hard_mms_get_name_list_smoke \ | |
| build-hard-embedded/ariec61850_hard_mms_static_model_smoke \ | |
| build-hard-embedded/ariec61850_hard_mms_write_smoke \ | |
| build-hard-embedded/ariec61850_hard_mms_dispatcher_smoke \ | |
| build-hard-embedded/ariec61850_hard_mms_connection_runtime_smoke \ | |
| build-hard-embedded/ariec61850_hard_mms_data_set_smoke \ | |
| build-hard-embedded/ariec61850_hard_mms_information_report_smoke \ | |
| build-hard-embedded/ariec61850_hard_mms_urcb_runtime_smoke \ | |
| build-hard-embedded/ariec61850_hard_mms_urcb_objects_smoke \ | |
| build-hard-embedded/ariec61850_hard_mms_report_connection_smoke | |
| } | tee build-hard-embedded/hard-embedded-footprint.txt | |
| - name: Upload hard-profile evidence | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: embedded-hard-profile-${{ matrix.compiler }}-${{ github.event.pull_request.head.sha || github.sha }} | |
| if-no-files-found: error | |
| retention-days: 14 | |
| path: | | |
| build-hard-embedded/hard-embedded-ctest.xml | |
| build-hard-embedded/hard-embedded-footprint.txt |