aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorToni Uhlig <matzeton@googlemail.com>2024-10-30 10:41:48 +0100
committerToni Uhlig <matzeton@googlemail.com>2024-11-02 12:05:07 +0100
commitddc96ba614e4f6d1cd4ea9526ae1ccc9d71b8f49 (patch)
tree6eeb778de7ee8714d776ca02ac8fe751734415dd
parent7b2cd268bffae7646d0de69da8b62f3f3972d29e (diff)
Adjusted SonarCloud config and CI
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
-rw-r--r--.github/workflows/sonarcloud.yml59
-rwxr-xr-xscripts/build-sonarcloud.sh20
-rw-r--r--sonar-project.properites9
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/**