Repository navigation
P3-A1: native ARStack Studio binary profile deployment and installer candidate #2415
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: Security and Evidence | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| jobs: | |
| sanitizers: | |
| name: Clang / ASan + UBSan | |
| runs-on: ubuntu-latest | |
| env: | |
| CC: clang | |
| CXX: clang++ | |
| ASAN_OPTIONS: detect_leaks=1:halt_on_error=1:strict_string_checks=1 | |
| UBSAN_OPTIONS: halt_on_error=1:print_stacktrace=1 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Configure | |
| run: >- | |
| cmake -S . -B build-sanitizers | |
| -DCMAKE_BUILD_TYPE=RelWithDebInfo | |
| -DARIEC61850_ENABLE_SANITIZERS=ON | |
| -DARIEC61850_WARNINGS_AS_ERRORS=ON | |
| - name: Build | |
| run: cmake --build build-sanitizers --parallel | |
| - name: Test | |
| run: ctest --test-dir build-sanitizers --output-on-failure | |
| fuzz-smoke: | |
| name: Clang / libFuzzer corpus smoke | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| env: | |
| CC: clang | |
| CXX: clang++ | |
| ASAN_OPTIONS: detect_leaks=1:halt_on_error=1 | |
| UBSAN_OPTIONS: halt_on_error=1:print_stacktrace=1 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Configure fuzzers | |
| run: >- | |
| cmake -S . -B build-fuzz | |
| -DCMAKE_BUILD_TYPE=RelWithDebInfo | |
| -DARIEC61850_BUILD_TESTS=OFF | |
| -DARIEC61850_BUILD_TOOLS=OFF | |
| -DARIEC61850_BUILD_FUZZERS=ON | |
| -DARIEC61850_ENABLE_SANITIZERS=ON | |
| -DARIEC61850_WARNINGS_AS_ERRORS=ON | |
| - name: Build fuzzers | |
| run: cmake --build build-fuzz --parallel | |
| - name: Run BER corpus | |
| run: ./build-fuzz/ariec61850_fuzz_ber fuzz/corpus/ber -runs=1000 -timeout=5 | |
| - name: Run GOOSE corpus | |
| run: ./build-fuzz/ariec61850_fuzz_goose fuzz/corpus/goose -runs=1000 -timeout=5 | |
| - name: Run Sampled Values corpus | |
| run: ./build-fuzz/ariec61850_fuzz_sampled_values fuzz/corpus/sampled_values -runs=1000 -timeout=5 | |
| - name: Run PCAP corpus | |
| run: ./build-fuzz/ariec61850_fuzz_pcap fuzz/corpus/pcap -runs=1000 -timeout=5 | |
| - name: Run SCL corpus | |
| run: ./build-fuzz/ariec61850_fuzz_scl fuzz/corpus/scl -runs=1000 -timeout=5 | |
| - name: Run COMTRADE corpus | |
| run: ./build-fuzz/ariec61850_fuzz_comtrade fuzz/corpus/comtrade -runs=1000 -timeout=5 | |
| - name: Run OSI transport corpus | |
| run: ./build-fuzz/ariec61850_fuzz_transport fuzz/corpus/transport -runs=1000 -timeout=5 | |
| - name: Run OSI association corpus | |
| run: ./build-fuzz/ariec61850_fuzz_association fuzz/corpus/association -runs=1000 -timeout=5 | |
| - name: Run MMS services corpus | |
| run: ./build-fuzz/ariec61850_fuzz_mms_services fuzz/corpus/mms_services -runs=1000 -timeout=5 | |
| - name: Run MMS reporting corpus | |
| run: ./build-fuzz/ariec61850_fuzz_reporting fuzz/corpus/reporting -runs=1000 -timeout=5 | |
| - name: Upload crash evidence | |
| if: failure() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: fuzz-crash-evidence | |
| if-no-files-found: ignore | |
| path: | | |
| crash-* | |
| leak-* | |
| timeout-* | |
| oom-* | |
| slow-unit-* |