Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 15 additions & 52 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,10 @@ jobs:
image: ubuntu:jammy-20230126
env:
working-directory: /asn1_codec
BUILD_WRAPPER_OUT_DIR: "$GITHUB_WORKSPACE/bw-output"
options: "--user root"
steps:
- name: checkout code
uses: actions/checkout@v4
uses: actions/checkout@v5
# Checkout the code from the repository

- name: Install necessary dependencies
Expand Down Expand Up @@ -76,70 +75,34 @@ jobs:
echo "export CC=gcc" >> ~/.bashrc
working-directory: ${{ env.working-directory }}

- name: Install sonar-scanner and build-wrapper
uses: SonarSource/sonarcloud-github-c-cpp@v3
# Install SonarScanner and build-wrapper for code analysis

- name: Build and Generate test coverage
run: |
sudo su - root
sudo chmod o+w /root
sudo chmod 755 -R /__w/asn1_codec/asn1_codec/
export BUILD_WRAPPER_OUT_DIR=$GITHUB_WORKSPACE/bw-output
build-wrapper-linux-x86-64 --out-dir $GITHUB_WORKSPACE/bw-output ./build.sh
mkdir coverage
cd coverage
gcov $GITHUB_WORKSPACE/kafka-test/src/*.cpp --object-directory /__w/asn1-codec/asn1-codec/build/kafka-test/CMakeFiles/Kafka-TestLib.dir/src/
gcov $GITHUB_WORKSPACE/src/*.cpp --object-directory /__w/asn1-codec/asn1-codec/build/CMakeFiles/ppm_tests.dir/src/
chmod +x build.sh
./build.sh
mkdir -p coverage
gcovr \
--root $GITHUB_WORKSPACE \
--object-directory $GITHUB_WORKSPACE/build \
--sonarqube coverage/coverage.xml \
--exclude '.*pugixml.*' \
--exclude '.*librdkafka.*'
working-directory: ${{ env.working-directory }}

- name: Archive code coverage results
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: asn1-codec
path: /__w/asn1-codec/asn1-codec/coverage/
# Archive code coverage results for later reference

- name: Archive buildwrapper output
uses: actions/upload-artifact@v4
with:
name: asn1-codec
path: /home/runner/work/asn1-codec/asn1-codec/bw-output
# Archive build-wrapper output

- uses: actions/setup-java@v4
- uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: '17'

- name: Setup SonarScanner
uses: warchant/setup-sonar-scanner@v7

- name: Generate sonar properties file
run: |
# Generate SonarScanner properties file
cat <<EOF > /tmp/sonar-scanner.properties
sonar.host.url=https://sonarcloud.io
sonar.projectName=asn1-codec
sonar.projectVersion=1.0
sonar.projectKey=usdot-jpo-ode_asn1-codec
sonar.organization=usdot-jpo-ode
sonar.sources=src,kafka-test/src,include
sonar.cfamily.build-wrapper-output=bw-output
sonar.cfamily.gcov.reportsPath=/__w/asn1-codec/asn1-codec/coverage/
sonar.sonar.projectBaseDir=/home/runner/work/asn1-codec/asn1-codec/
sonar.exclusions=**/*.java
sonar.coverage.exclusions=**/*.java
sonar.exclusions=pugixml/tests/data/**
# Set Git as SCM sensor
sonar.scm.disabled=true
sonar.scm.provider=git
sonar.sourceEncoding=UTF-8
EOF
- name: SonarScanner
if: github.event.pull_request.base.repo.owner.login == 'usdot-jpo-ode'
- name: SonarScanner
if: github.event_name != 'pull_request' || github.event.pull_request.base.repo.owner.login == 'usdot-jpo-ode'
uses: usdot-fhwa-stol/actions/sonar-scanner@main
with:
sonar-properties-path: /tmp/sonar-scanner.properties
sonar-token: ${{ secrets.SONAR_TOKEN }}
working-dir: $GITHUB_WORKSPACE
working-dir: ${{ github.workspace }}
2 changes: 1 addition & 1 deletion build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ ls -la && pwd
# build asn1_codec
mkdir build
cd build
cmake ..
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ..
cmake --build .
make
ctest --output-on-failure
21 changes: 13 additions & 8 deletions sonar-project.properties
Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
sonar.projectKey=jpo-cvdp-key
sonar.projectName=jpo-cvdp
sonar.organization=usdot-jpo-ode
sonar.projectKey=usdot-jpo-ode_asn1-codec
sonar.projectName=asn1-codec
sonar.projectVersion=1.0
sonar.sources=src,cv-lib/src
sonar.cfamily.build-wrapper-output=bw-output
sonar.host.url=https://sonarqube.com
sonar.organization=aferber-github
sonar.login=feb286a32ec2f510525f9e3e44da3f81b4de57c0
sonar.cfamily.gcov.reportsPath=./coverage

sonar.sources=src,kafka-test/src,include
sonar.cfamily.compile-commands=build/compile_commands.json
sonar.coverageReportPaths=coverage/coverage.xml

sonar.exclusions=**/*.java,pugixml/tests/data/**
sonar.coverage.exclusions=**/*.java
sonar.scm.disabled=true
sonar.scm.provider=git
sonar.sourceEncoding=UTF-8
Loading