From f508e54ab07bd4875ece8b2631685eefbaa481ef Mon Sep 17 00:00:00 2001 From: Edgar Date: Thu, 12 May 2022 13:23:47 +0200 Subject: [PATCH] :tada: Added sonarcloud scan --- .github/workflows/sonarcloud.yml | 55 ++++++++++++++++++++++++++++++++ cmake/FindCatch2.cmake | 3 +- sonar-project.properties | 12 +++++++ 3 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/sonarcloud.yml create mode 100644 sonar-project.properties diff --git a/.github/workflows/sonarcloud.yml b/.github/workflows/sonarcloud.yml new file mode 100644 index 0000000..d8e6dd7 --- /dev/null +++ b/.github/workflows/sonarcloud.yml @@ -0,0 +1,55 @@ +name: sonarcloud scan +on: + push: + branches: + - master + pull_request: + types: [opened, synchronize, reopened] +jobs: + build: + name: sonarcloud scan + runs-on: ubuntu-latest + env: + SONAR_SCANNER_VERSION: 4.7.0.2747 + SONAR_SERVER_URL: "https://sonarcloud.io" + BUILD_WRAPPER_OUT_DIR: sonar-out # Directory where build-wrapper output will be placed + steps: + - uses: actions/checkout@v2 + - name: Set up JDK 11 + uses: actions/setup-java@v1 + with: + java-version: 11 + + - name: Download and set up sonar-scanner + env: + SONAR_SCANNER_DOWNLOAD_URL: https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-${{ env.SONAR_SCANNER_VERSION }}-linux.zip + run: | + mkdir -p $HOME/.sonar + curl -sSLo $HOME/.sonar/sonar-scanner.zip ${{ env.SONAR_SCANNER_DOWNLOAD_URL }} + unzip -o $HOME/.sonar/sonar-scanner.zip -d $HOME/.sonar/ + echo "$HOME/.sonar/sonar-scanner-${{ env.SONAR_SCANNER_VERSION }}-linux/bin" >> $GITHUB_PATH + + - name: Download and set up build-wrapper + env: + BUILD_WRAPPER_DOWNLOAD_URL: ${{ env.SONAR_SERVER_URL }}/static/cpp/build-wrapper-linux-x86.zip + run: | + curl -sSLo $HOME/.sonar/build-wrapper-linux-x86.zip ${{ env.BUILD_WRAPPER_DOWNLOAD_URL }} + unzip -o $HOME/.sonar/build-wrapper-linux-x86.zip -d $HOME/.sonar/ + echo "$HOME/.sonar/build-wrapper-linux-x86" >> $GITHUB_PATH + + - name: Configure + run: cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_TEST=ON . + + - name: Run build-wrapper + run: | + build-wrapper-linux-x86-64 --out-dir ${{ env.BUILD_WRAPPER_OUT_DIR }} make -j4 + + - name: Test + run: ctest . + + - name: Run sonar-scanner + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + run: | + sonar-scanner --define sonar.host.url="${{ env.SONAR_SERVER_URL }}" --define sonar.cfamily.build-wrapper-output="${{ env.BUILD_WRAPPER_OUT_DIR }}" diff --git a/cmake/FindCatch2.cmake b/cmake/FindCatch2.cmake index 96cd4cb..f219dcd 100644 --- a/cmake/FindCatch2.cmake +++ b/cmake/FindCatch2.cmake @@ -1,6 +1,6 @@ set(Catch2_FOUND TRUE) -set(CATCH2_VERSION "v2.13.7") +set(CATCH2_VERSION "v2.13.9") set(CATCH2_INCLUDEDIR "${CMAKE_BINARY_DIR}/catch-${CATCH2_VERSION}") list(APPEND CMAKE_MODULE_PATH "${CATCH2_INCLUDEDIR}") @@ -8,6 +8,7 @@ if (NOT EXISTS "${CATCH2_INCLUDEDIR}/catch.hpp") file(MAKE_DIRECTORY "${CATCH2_INCLUDEDIR}") message(STATUS "Downloading catch.hpp from https://github.com/catchorg/Catch2/") file(DOWNLOAD "https://github.com/catchorg/Catch2/releases/download/${CATCH2_VERSION}/catch.hpp" "${CATCH2_INCLUDEDIR}/catch.hpp") + file(DOWNLOAD "https://github.com/catchorg/Catch2/releases/download/${CATCH2_VERSION}/catch_reporter_sonarqube.hpp" "${CATCH2_INCLUDEDIR}/catch_reporter_sonarqube.hpp") file(DOWNLOAD "https://cdn.statically.io/gh/catchorg/Catch2/${CATCH2_VERSION}/contrib/Catch.cmake" "${CATCH2_INCLUDEDIR}/Catch.cmake") file(DOWNLOAD "https://cdn.statically.io/gh/catchorg/Catch2/${CATCH2_VERSION}/contrib/CatchAddTests.cmake" "${CATCH2_INCLUDEDIR}/CatchAddTests.cmake") file(DOWNLOAD "https://cdn.statically.io/gh/catchorg/Catch2/${CATCH2_VERSION}/contrib/ParseAndAddCatchTests.cmake" "${CATCH2_INCLUDEDIR}/ParseAndAddCatchTests.cmake") diff --git a/sonar-project.properties b/sonar-project.properties new file mode 100644 index 0000000..e16445e --- /dev/null +++ b/sonar-project.properties @@ -0,0 +1,12 @@ +sonar.projectKey=AnotherFoxGuy_MofileReader +sonar.organization=anotherfoxguy-github + +# This is the name and version displayed in the SonarCloud UI. +sonar.projectName=MofileReader +sonar.projectVersion=1.2.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 \ No newline at end of file