diff options
author | Toni Uhlig <matzeton@googlemail.com> | 2024-10-30 10:41:48 +0100 |
---|---|---|
committer | Toni Uhlig <matzeton@googlemail.com> | 2024-11-02 12:05:07 +0100 |
commit | ddc96ba614e4f6d1cd4ea9526ae1ccc9d71b8f49 (patch) | |
tree | 6eeb778de7ee8714d776ca02ac8fe751734415dd | |
parent | 7b2cd268bffae7646d0de69da8b62f3f3972d29e (diff) |
Adjusted SonarCloud config and CI
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
-rw-r--r-- | .github/workflows/sonarcloud.yml | 59 | ||||
-rwxr-xr-x | scripts/build-sonarcloud.sh | 20 | ||||
-rw-r--r-- | sonar-project.properites | 9 |
3 files changed, 52 insertions, 36 deletions
diff --git a/.github/workflows/sonarcloud.yml b/.github/workflows/sonarcloud.yml index 8bc58a4bd..1aba37213 100644 --- a/.github/workflows/sonarcloud.yml +++ b/.github/workflows/sonarcloud.yml @@ -16,46 +16,51 @@ jobs: - uses: actions/checkout@v4 with: fetch-depth: 0 -# - uses: actions/checkout@v4 -# - name: Set up Python 3.8 for gcovr -# uses: actions/setup-python@v4 -# with: -# python-version: 3.8 -# - name: install gcovr 5.0 -# run: | -# pip install gcovr==5.0 # 5.1 is not supported + - name: Set up Python 3.8 for gcovr + uses: actions/setup-python@v4 + with: + python-version: 3.8 + - name: install gcovr 5.0 + run: | + pip install gcovr==5.0 # 5.1 is not supported - name: Install sonar-scanner and build-wrapper - uses: SonarSource/sonarcloud-github-c-cpp@v2 + uses: SonarSource/sonarcloud-github-c-cpp@v3.1.0 - name: Install Prerequisites run: | sudo apt-get update - sudo apt-get install autoconf automake cmake libtool pkg-config gettext libjson-c-dev flex bison libpcap-dev zlib1g-dev + sudo apt-get install autoconf automake cmake lcov \ + libtool pkg-config gettext \ + libjson-c-dev flex bison \ + libcurl4-openssl-dev libpcap-dev zlib1g-dev - name: Run build-wrapper run: | - mkdir build - cmake -S . -B build -DBUILD_NDPI=ON -DDENABLE_ZLIB=ON -DNDPI_WITH_GCRYPT=OFF - build-wrapper-linux-x86-64 --out-dir ${{ env.BUILD_WRAPPER_OUT_DIR }} cmake --build build/ --config Release -# - name: Run tests -# run: | -# for file in $(ls libnDPI/tests/cfgs/*/pcap/*.pcap libnDPI/tests/cfgs/*/pcap/*.pcapng libnDPI/tests/cfgs/*/pcap/*.cap); do \ -# echo -n "${file} "; \ -# ./build/nDPId-test "${file}" >/dev/null 2>/dev/null; \ -# echo "[ok]"; \ -# done -# - name: Collect coverage into one XML report -# run: | -# gcovr --sonarqube > coverage.xml + build-wrapper-linux-x86-64 --out-dir ${{ env.BUILD_WRAPPER_OUT_DIR }} ./scripts/build-sonarcloud.sh + - name: Run tests + run: | + for file in $(ls libnDPI/tests/cfgs/*/pcap/*.pcap libnDPI/tests/cfgs/*/pcap/*.pcapng libnDPI/tests/cfgs/*/pcap/*.cap); do \ + echo -n "${file} "; \ + cd ./build-sonarcloud; \ + ./nDPId-test "../${file}" >/dev/null 2>/dev/null; \ + cd ..; \ + echo "[ok]"; \ + done + mkdir -p gcov_report + cd gcov_report + gcov ../build-sonarcloud/CMakeFiles/nDPId-test.dir/nDPId-test.c.o + cd .. - name: Run sonar-scanner env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} run: | sonar-scanner \ + --define sonar.projectName=nDPId \ + --define sonar.projectVersion=1.7 \ + --define sonar.sourceEncoding=UTF-8 \ --define sonar.branch.name=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}} \ - --define sonar.cfamily.build-wrapper-output="${{ env.BUILD_WRAPPER_OUT_DIR }}" \ --define sonar.organization=lnslbrty \ --define sonar.projectKey=lnslbrty_nDPId \ - --define sonar.exclusions=dependencies/uthash/src/** \ - --define sonar.verbose=true \ --define sonar.python.version=3.8 \ - --define sonar.cfamily.gcov.reportsPath=coverage.xml + --define sonar.cfamily.compile-commands=${{ env.BUILD_WRAPPER_OUT_DIR }}/compile_commands.json \ + --define sonar.cfamily.gcov.reportsPath=gcov_report \ + --define sonar.exclusions=build-sonarcloud/**,libnDPI/**,test/results/**,dependencies/jsmn/**,dependencies/uthash/**,examples/js-rt-analyzer-frontend/**,examples/js-rt-analyzer/**,examples/c-collectd/www/**,examples/py-flow-dashboard/assets/** diff --git a/scripts/build-sonarcloud.sh b/scripts/build-sonarcloud.sh new file mode 100755 index 000000000..55a62c959 --- /dev/null +++ b/scripts/build-sonarcloud.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash + +set -e +set -x + +cd "$(dirname "${0}")/.." + +BUILD_DIR=./build-sonarcloud +NUMBER_OF_PROCESSORS=$(nproc --all) +mkdir "${BUILD_DIR}" +cmake -S . -B "${BUILD_DIR}" \ + -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ + -DENABLE_COVERAGE=ON \ + -DBUILD_NDPI=ON \ + -DBUILD_EXAMPLES=ON \ + -DENABLE_CURL=ON \ + -DENABLE_ZLIB=ON \ + -DNDPI_WITH_GCRYPT=OFF +cmake --build "${BUILD_DIR}" -j ${NUMBER_OF_PROCESSORS} \ + --config Release diff --git a/sonar-project.properites b/sonar-project.properites deleted file mode 100644 index 9fe117943..000000000 --- a/sonar-project.properites +++ /dev/null @@ -1,9 +0,0 @@ -sonar.projectKey=lnslbrty_nDPId -sonar.organization=lnslbrty - -sonar.projectName=nDPId -sonar.projectVersion=1.5 - -sonar.sourceEncoding=UTF-8 -sonar.sources=*.c,*.h,dependencies/nDPIsrvd.h,dependencies/nDPIsrvd.py,examples/c-*/**,examples/cxx-*/**,examples/py-*/** -sonar.exclusions = dependencies/jsmn/** dependencies/uthash/** examples/js-rt-analyzer-frontend/** examples/js-rt-analyzer/** examples/c-collectd/www/** examples/py-flow-dashboard/assets/** |