Skip to content

Commit

Permalink
Merge pull request #309 from Infomaniak/kdesktop-1233-let-the-windows…
Browse files Browse the repository at this point in the history
…-ci-runner-launch-sonar-scanner-and-run-bullseye-coverage-analysis

[KDESKTOP-1223] Let the Windows CI runner manage the Sonar Cloud analysis, including code coverage
  • Loading branch information
ClementKunz authored Oct 8, 2024
2 parents 82808cf + 2276324 commit fe8493b
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 4 deletions.
43 changes: 41 additions & 2 deletions .github/workflows/windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,16 @@ jobs:
runs-on: [ self-hosted, Windows, desktop-kdrive ]

steps:
- name: Load system Path into Github environment
run : echo Path=%Path%>> %GITHUB_ENV%
shell: cmd

- name: Checkout the PR
uses: actions/[email protected]
with:
ref: ${{ github.head_ref }}
submodules: recursive

- name: Clean the log directory
run : rm -r -force C:/Windows/Temp/kDrive-logdir/*

Expand All @@ -48,11 +52,46 @@ jobs:
- name: Build kDrive desktop
run: |
call "C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Auxiliary/Build/vcvars64.bat"
set COVFILE=%cd%\src\test.cov
call "cov01.exe" -1
powershell ./infomaniak-build-tools/windows/build-drive.ps1 -ci
shell: cmd

- name: Execute tests
run: ./infomaniak-build-tools/run-tests.ps1
run: |
$env:COVFILE="$pwd\src\test.cov"
& "cov01.exe" "-1" # coverage on
./infomaniak-build-tools/run-tests.ps1
- name: Compute code coverage
run : |
rm -Force -ErrorAction SilentlyContinue BullseyeCoverageExclusions
echo "exclude folder 3rdparty/\nexclude folder ../" >> BullseyeCoverageExclusions
$env:COVFILE="$pwd\src\test.cov"
& "cov01.exe" "-0" # coverage off
& "covselect.exe" "--import" "BullseyeCoverageExclusions"
& "covxml.exe" "-f" "$env:COVFILE" "-o" "coverage.xml"
- name: Install sonar-scanner
uses: SonarSource/sonarcloud-github-c-cpp@v3
env:
SONAR_HOST_URL: https://sonarcloud.io

- name: Run sonar-scanner
env:
GITHUB_TOKEN: ${{ github.token }}
SONAR_TOKEN: ${{ secrets.SONAR_DESKTOP_KDRIVE_TOKEN }}
SONAR_HOST_URL: https://sonarcloud.io
run: >
sonar-scanner
--define sonar.projectKey="Infomaniak_desktop-kDrive"
--define sonar.organization="infomaniak"
--define sonar.host.url="https://sonarcloud.io"
--define sonar.sources="src"
--define sonar.exclusions="src/3rdparty/**"
--define sonar.cfamily.compile-commands="build-windows/build/compile_commands.json"
--define sonar.cfamily.bullseye.reportPaths="coverage.xml"
- name: Upload tests logs artifacts
uses: actions/upload-artifact@v4
Expand Down
8 changes: 6 additions & 2 deletions infomaniak-build-tools/windows/build-drive.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -266,16 +266,20 @@ if (!(Test-Path "$vfsDir\vfs.dll") -or $ext)
# #
#################################################################################################

$msvc_bin_path = "C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30133/bin"
$compiler_path = "$msvc_bin_path/Hostx64/x64/cl.exe"

$args = @("'-GNinja'")
$args += ("'-DCMAKE_BUILD_TYPE=$buildType'")
$args += ("'-DCMAKE_INSTALL_PREFIX=$installPath'")
$args += ("'-DCMAKE_PREFIX_PATH=$installPath'")

$flags = @(
"'-DCMAKE_EXPORT_COMPILE_COMMANDS=1'",
"'-DCMAKE_MAKE_PROGRAM=C:\Qt\Tools\Ninja\ninja.exe'",
"'-DQT_QMAKE_EXECUTABLE:STRING=C:\Qt\Tools\CMake_64\bin\cmake.exe'",
"'-DCMAKE_C_COMPILER:STRING=C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe'",
"'-DCMAKE_CXX_COMPILER:STRING=C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe'",
"'-DCMAKE_C_COMPILER:STRING=$compiler_path'",
"'-DCMAKE_CXX_COMPILER:STRING=$compiler_path'",
"'-DAPPLICATION_UPDATE_URL:STRING=https://www.infomaniak.com/drive/update/desktopclient'",
"'-DAPPLICATION_VIRTUALFILE_SUFFIX:STRING=kdrive'",
"'-DBIN_INSTALL_DIR:PATH=$path'",
Expand Down

0 comments on commit fe8493b

Please sign in to comment.