Преглед изворни кода

Add SonarCloud (#421)

* Add SonarCloud

* Update cmake.yml

* Updates sonar properties

Signed-off-by: Martin Melik-Merkumians <melik-merkumians@acin.tuwien.ac.at>

* Changes build order and cleans build

Signed-off-by: Martin Melik-Merkumians <melik-merkumians@acin.tuwien.ac.at>

* Fixes token name

Signed-off-by: Martin Melik-Merkumians <melik-merkumians@acin.tuwien.ac.at>

---------

Signed-off-by: Martin Melik-Merkumians <melik-merkumians@acin.tuwien.ac.at>
Martin Melik-Merkumians пре 2 година
родитељ
комит
9f6bf9f1e0
2 измењених фајлова са 27 додато и 4 уклоњено
  1. 18 1
      .github/workflows/cmake.yml
  2. 9 3
      sonar-project.properties

+ 18 - 1
.github/workflows/cmake.yml

@@ -9,6 +9,7 @@ on:
 env:
   # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
   BUILD_TYPE: Release
+  BUILD_WRAPPER_OUT_DIR: build_wrapper_output_directory # Directory where build-wrapper output will be placed
 
 jobs:
   build:
@@ -19,6 +20,11 @@ jobs:
 
     steps:
     - uses: actions/checkout@v3
+      with:
+        fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
+        
+    - name: Install sonar-scanner and build-wrapper
+      uses: SonarSource/sonarcloud-github-c-cpp@v1
     
     - name: Install libcap
       run: sudo apt-get install -y libcap-dev
@@ -30,11 +36,22 @@ jobs:
 
     - name: Build
       # Build your program with the given configuration
-      run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
+      run: |
+        cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
 
     - name: Test
       working-directory: ${{github.workspace}}/build
       # Execute tests defined by the CMake configuration.
       # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
       run: ctest -C ${{env.BUILD_TYPE}}
+    
+    - name: Run sonar-scanner
+      env:
+        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+        SONAR_TOKEN: ${{ secrets.SONAR_TOKEN  }} # Put the name of your token here
+      run: |
+        cmake --build ${{github.workspace}}/build --target clean
+        build-wrapper-linux-x86-64 --out-dir ${{ env.BUILD_WRAPPER_OUT_DIR }} cmake --build ${{github.workspace}}/build --config Release
+        sonar-scanner --define sonar.cfamily.build-wrapper-output="${{ env.BUILD_WRAPPER_OUT_DIR }}"
+
 

+ 9 - 3
sonar-project.properties

@@ -1,6 +1,12 @@
 sonar.projectKey=OpENer
 sonar.organization=eipstackgroup
-sonar.cfamily.build-wrapper-output=bw-output
-sonar.host.url=https://sonarcloud.io
-sonar.coverage.exclusions=**/tests/**,=**/tests/**/*,**/tests/*,**/src/ports/**/sample_application/*
 
+# This is the name and version displayed in the SonarCloud UI.
+#sonar.projectName=OpENer
+#sonar.projectVersion=1.0
+
+# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
+#sonar.sources=.
+
+# Encoding of the source code. Default is default system encoding
+#sonar.sourceEncoding=UTF-8