Update CMakeLists.txt #159
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CodeSonar | |
on: | |
push: | |
branches: | |
- main | |
pull_request_target: | |
jobs: | |
build: | |
name: Build | |
runs-on: ubuntu-latest | |
env: | |
SONAR_SCANNER_VERSION: 4.7.0.2747 | |
SONAR_SERVER_URL: "https://sonarcloud.io" | |
BUILD_WRAPPER_OUT_DIR: build_wrapper_output_directory # Directory where build-wrapper output will be placed | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | |
steps: | |
- uses: actions/checkout@v2 | |
if : github.event_name == 'pull_request_target' | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} # Checkout the PR's head sha instead of the target branch's sha | |
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis | |
- uses: actions/checkout@v2 | |
if : github.event_name != 'pull_request_target' | |
with: | |
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis | |
- 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: Init submodules | |
run: | | |
git submodule init | |
git submodule update --init --recursive | |
- name: Configure CMake | |
run: cmake . | |
- name: Run build-wrapper | |
run: | | |
build-wrapper-linux-x86-64 --out-dir ${{ env.BUILD_WRAPPER_OUT_DIR }} cmake --build . | |
- name: Run unit tests | |
run: | | |
ctest . | |
- name: Generate Gcov files | |
run: | | |
mkdir gcov_reports_dir | |
cd gcov_reports_dir | |
find .. -name '*.o' | xargs gcov --preserve-paths | |
cd .. | |
- name: Run sonar-scanner on PR | |
if : github.event_name == 'pull_request_target' | |
env: | |
PR_NUMBER: ${{ github.event.pull_request.number }} | |
PR_BRANCH: ${{ github.event.pull_request.head.ref }} | |
BASE_REF: ${{ github.event.pull_request.base.ref }} | |
HEAD_SHA: ${{ github.event.pull_request.head.sha }} | |
run: | | |
sonar-scanner --define sonar.projectKey=balaji-nordic_unit-test-experiments \ | |
--define sonar.organization=balaji-nordic \ | |
--define sonar.host.url="${{ env.SONAR_SERVER_URL }}" \ | |
--define sonar.exclusions="**CMakeFiles**" \ | |
--define sonar.cpd.exclusions="**CMakeFiles**" \ | |
--define sonar.cfamily.build-wrapper-output="${{ env.BUILD_WRAPPER_OUT_DIR }}" \ | |
--define sonar.cfamily.gcov.reportsPath="gcov_reports_dir" \ | |
--define sonar.scm.revision=${{ env.HEAD_SHA }} \ | |
--define sonar.pullrequest.key=${{ env.PR_NUMBER }} \ | |
--define sonar.pullrequest.branch=${{ env.PR_BRANCH }} \ | |
--define sonar.pullrequest.base=${{ env.BASE_REF }} | |
- name: Run sonar-scanner | |
if : github.event_name != 'pull_request_target' | |
run: | | |
sonar-scanner --define sonar.projectKey=balaji-nordic_unit-test-experiments \ | |
--define sonar.organization=balaji-nordic \ | |
--define sonar.host.url="${{ env.SONAR_SERVER_URL }}" \ | |
--define sonar.exclusions="**CMakeFiles**" \ | |
--define sonar.cpd.exclusions="**CMakeFiles**" \ | |
--define sonar.cfamily.build-wrapper-output="${{ env.BUILD_WRAPPER_OUT_DIR }}" \ | |
--define sonar.cfamily.gcov.reportsPath="gcov_reports_dir" |