Skip revision increment when release tag #11
This file contains 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: "SonarCloud Analysis" | |
on: | |
workflow_dispatch: | |
workflow_call: | |
secrets: | |
SONAR_TOKEN: | |
required: true | |
push: | |
branches: [master] | |
jobs: | |
sonarcloud-analysis: | |
if: ${{ vars.SONAR_SCANNER_ENABLED }} | |
runs-on: ${{ vars.SONAR_SCANNER_RUNNER || 'ubuntu-24.04' }} | |
timeout-minutes: 20 | |
env: | |
SONAR_SCANNER_VERSION: 6.1.0.4477 | |
SONAR_SCANNER_OPTS: -server | |
SONAR_SCANNER_URL_BASE: https://binaries.sonarsource.com/Distribution/sonar-scanner-cli | |
CPU_CORE_COUNT: ${{ vars.SONAR_SCANNER_CPU_COUNT || 4 }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
# Fetch all history for SonarScanner blame data | |
fetch-depth: 0 | |
- name: Config Git safe dir | |
run: git config --global --add safe.directory $GITHUB_WORKSPACE | |
- name: Install dependencies | |
run: | | |
./scripts/install_deps.py && | |
apt install curl unzip -y && | |
pip install gcovr | |
env: | |
# Prevent apt prompting for input. | |
DEBIAN_FRONTEND: noninteractive | |
- name: Install sonar-scanner and build-wrapper | |
uses: sonarsource/sonarcloud-github-c-cpp@v3 | |
- name: Configure | |
run: cmake -B build --preset=linux-debug -DENABLE_COVERAGE=ON | |
- name: Build | |
run: | | |
build-wrapper-linux-x86-64 --out-dir bw-output cmake --build build -j${CPU_CORE_COUNT} | |
- name: Unit tests coverage | |
env: | |
QT_QPA_PLATFORM: offscreen | |
run: cmake --build build --target coverage-unittests | |
- name: Integration tests coverage | |
env: | |
QT_QPA_PLATFORM: offscreen | |
run: cmake --build build --target coverage-integtests | |
- name: Get coverage report paths | |
id: coverage-paths | |
run: | | |
unittests=$(find build -name coverage-unittests.xml) | |
integtests=$(find build -name coverage-integtests.xml) | |
paths="${unittests}${integtests:+,$integtests}" | |
if [ -z "$paths" ]; then | |
echo "Error: No coverage files found" | |
exit 1 | |
fi | |
echo "csv=$paths" >> $GITHUB_OUTPUT | |
- name: Run SonarScanner | |
run: | | |
export PATH=$HOME/.sonar/sonar-scanner-$SONAR_SCANNER_VERSION-linux-x64/bin:$PATH | |
sonar-scanner \ | |
-Dsonar.coverageReportPaths=${{ steps.coverage-paths.outputs.csv }} \ | |
-Dsonar.cfamily.threads=${{ env.CPU_CORE_COUNT }} | |
env: | |
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} |