Skip to content

Commit 084cd50

Browse files
Fix SonarQube Scanning (#494)
* Upgrade sonarscanner * dotnet-sonarscanner * check $LastExitCode * Java 11 * Update run-sonar.ps1 * pullrequest.key / pullrequest.base * cleanup, remove special base branch mode * fixup * cleanup output, write-host
1 parent 4bd1909 commit 084cd50

2 files changed

Lines changed: 27 additions & 22 deletions

File tree

appveyor.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,9 @@ test_script:
2929
- OpenCover\tools\OpenCover.Console.exe -register:user -mergeoutput -target:"C:/Program Files/dotnet/dotnet.exe" -targetargs:"test -f netcoreapp3.1 -c debug NLog.Extensions.Hosting.Tests" -filter:"+[NLog.Extensions.Logging]* +[NLog.Extensions.Hosting]* -[NLog.Extensions.Logging.Tests]* -[NLog.Extensions.Hosting.Tests]*" -output:"coverage.xml" -oldstyle -targetdir:"test"
3030
- OpenCover\tools\OpenCover.Console.exe -register:user -mergeoutput -target:"C:/Program Files/dotnet/dotnet.exe" -targetargs:"test -f net5.0 -c debug NLog.Extensions.Hosting.Tests" -filter:"+[NLog.Extensions.Logging]* +[NLog.Extensions.Hosting]* -[NLog.Extensions.Logging.Tests]* -[NLog.Extensions.Hosting.Tests]*" -output:"coverage.xml" -oldstyle -targetdir:"test"
3131
- pip install codecov
32-
- pip install codecov
3332
- codecov -f "coverage.xml"
33+
- set JAVA_HOME=C:\Program Files\Java\jdk11
34+
- set PATH=%JAVA_HOME%\bin;%PATH%
3435
- ps: .\run-sonar.ps1
3536
- ps: .\run-tests.ps1
3637

run-sonar.ps1

Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -14,46 +14,50 @@ if ($env:APPVEYOR_REPO_NAME -eq $github) {
1414
}
1515

1616
$prMode = $false;
17-
$branchMode = $false;
1817

1918
if ($env:APPVEYOR_PULL_REQUEST_NUMBER) {
2019
# first check PR as that is on the base branch
2120
$prMode = $true;
22-
Write-Output "Sonar: on PR $env:APPVEYOR_PULL_REQUEST_NUMBER"
23-
}
24-
elseif ($env:APPVEYOR_REPO_BRANCH -eq $baseBranch) {
25-
Write-Output "Sonar: on base branch ($baseBranch)"
26-
}
27-
else {
28-
$branchMode = $true;
29-
Write-Output "Sonar: on branch $env:APPVEYOR_REPO_BRANCH"
3021
}
3122

32-
choco install "msbuild-sonarqube-runner" -y
23+
dotnet tool install --global dotnet-sonarscanner
24+
if (-Not $LastExitCode -eq 0) {
25+
exit $LastExitCode
26+
}
3327

3428
$sonarUrl = "https://sonarcloud.io"
3529
$sonarToken = $env:sonar_token
3630
$buildVersion = $env:APPVEYOR_BUILD_VERSION
3731

3832
if ($prMode) {
33+
$branch = $env:APPVEYOR_PULL_REQUEST_HEAD_REPO_BRANCH
34+
$prBaseBranch = $env:APPVEYOR_REPO_BRANCH;
3935
$pr = $env:APPVEYOR_PULL_REQUEST_NUMBER
40-
Write-Output "Sonar: Running Sonar for PR $pr"
41-
SonarScanner.MSBuild.exe begin /o:"$sonarOrg" /k:"$sonarQubeId" /d:"sonar.host.url=$sonarUrl" /d:"sonar.login=$sonarToken" /v:"$buildVersion" /d:"sonar.cs.opencover.reportsPaths=coverage.xml" /d:"sonar.analysis.mode=preview" /d:"sonar.github.pullRequest=$pr" /d:"sonar.github.repository=$github" /d:"sonar.github.oauth=$env:github_auth_token"
36+
37+
Write-Host "Sonar: on PR $pr from $branch to $prBaseBranch" -ForegroundColor DarkGreen -BackgroundColor White
38+
dotnet-sonarscanner begin /o:"$sonarOrg" /k:"$sonarQubeId" /d:"sonar.host.url=$sonarUrl" /d:"sonar.login=$sonarToken" /v:"$buildVersion" /d:"sonar.cs.opencover.reportsPaths=coverage.xml" /d:"sonar.pullrequest.key=$pr" /d:"sonar.pullrequest.branch=$branch" /d:"sonar.pullrequest.base=$prBaseBranch" /d:"sonar.github.repository=$github" /d:"sonar.github.oauth=$env:github_auth_token"
4239
}
43-
elseif ($branchMode) {
40+
else {
4441
$branch = $env:APPVEYOR_REPO_BRANCH;
45-
Write-Output "Sonar: Running Sonar in branch mode for branch $branch"
46-
SonarScanner.MSBuild.exe begin /o:"$sonarOrg" /k:"$sonarQubeId" /d:"sonar.host.url=$sonarUrl" /d:"sonar.login=$sonarToken" /v:"$buildVersion" /d:"sonar.cs.opencover.reportsPaths=coverage.xml" /d:"sonar.branch.name=$branch"
42+
43+
Write-Host "Sonar: on branch $branch" -ForegroundColor DarkGreen -BackgroundColor White
44+
dotnet-sonarscanner begin /o:"$sonarOrg" /k:"$sonarQubeId" /d:"sonar.host.url=$sonarUrl" /d:"sonar.login=$sonarToken" /v:"$buildVersion" /d:"sonar.cs.opencover.reportsPaths=coverage.xml" /d:"sonar.branch.name=$branch"
4745
}
48-
else {
49-
Write-Output "Sonar: Running Sonar in non-preview mode, on branch $env:APPVEYOR_REPO_BRANCH"
50-
SonarScanner.MSBuild.exe begin /o:"$sonarOrg" /k:"$sonarQubeId" /d:"sonar.host.url=$sonarUrl" /d:"sonar.login=$sonarToken" /v:"$buildVersion" /d:"sonar.cs.opencover.reportsPaths=coverage.xml"
46+
47+
if (-Not $LastExitCode -eq 0) {
48+
exit $LastExitCode
5149
}
5250

5351
msbuild /t:Rebuild $projectFile /p:targetFrameworks=$framework /verbosity:minimal
52+
if (-Not $LastExitCode -eq 0) {
53+
exit $LastExitCode
54+
}
5455

55-
SonarScanner.MSBuild.exe end /d:"sonar.login=$env:sonar_token"
56+
dotnet-sonarscanner end /d:"sonar.login=$env:sonar_token"
57+
if (-Not $LastExitCode -eq 0) {
58+
exit $LastExitCode
59+
}
5660
}
5761
else {
58-
Write-Output "Sonar: not running as we're on '$env:APPVEYOR_REPO_NAME'"
59-
}
62+
Write-Host "Sonar: not running as we're on '$env:APPVEYOR_REPO_NAME'"
63+
}

0 commit comments

Comments
 (0)