msbuild-sq-runner/MRPP_MSBuildSonarQubeRunner.xml (27 lines of code) (raw):
<?xml version="1.0" encoding="UTF-8"?>
<meta-runner name="MSBuild SonarQube Runner">
<description>Execute MSBuild SonarQube Runner</description>
<settings>
<parameters>
<param name="additionalCommandLineArgs" value="" />
<param name="key" value="" />
<param name="name" value="" />
<param name="solutionName" value="" />
<param name="solutionPath" value="%teamcity.build.checkoutDir%" />
<param name="sonarhost" value="http://localhost:9000" />
<param name="sqMsbuildVersion" value="1.0.2" spec="text description='define the version that is found in the donwnload page' label='sqMsbuildVersion' display='normal'" />
<param name="system.NunitRunnerTaskEnabled" value="true" spec="text description='enables tests' label='test' display='hidden'" />
<param name="system.ProduceCoverage" value="true" spec="text description='enables coverage' label='coverage' display='hidden'" />
<param name="userName" value="" />
<param name="userPassword" value="" spec="password description='pass' label='pass' display='normal'" />
<param name="version" value="work" />
<param name="msbuildVersion" value="14.0" spec="select description='MSBuild Version to Use' data_2='12.0' data_1='14.0' display='normal' label='msbuildVersion' data_4='10.0' data_3='11.0'" />
<param name="visualStudioVersion" value="vs2015" spec="select description='Visual Studio Version to Use' data_2='vs2013' data_1='vs2015' display='normal' label='visualStudioVersion' data_4='vs2010' data_3='vs2012'" />
</parameters>
<build-runners>
<runner name="" type="jetbrains_powershell">
<parameters>
<param name="jetbrains_powershell_bitness" value="x86" />
<param name="jetbrains_powershell_errorToError" value="true" />
<param name="jetbrains_powershell_execution" value="PS1" />
<param name="jetbrains_powershell_script_code"><![CDATA[$SQDir = Join-Path ([Environment]::GetFolderPath("CommonApplicationData")) MSBuidSonarQube.%sqMsbuildVersion%
$SQExecutor = Join-Path $SQDir MSBuild.SonarQube.Runner.exe
$downloadUrl = "https://github.com/SonarSource/sonar-msbuild-runner/releases/download/%sqMsbuildVersion%/MSBuild.SonarQube.Runner-%sqMsbuildVersion%.zip"
$tempZipFile = "%teamcity.build.checkoutDir%/MSBuild.SonarQube.Runner.zip"
Write-Host "##teamcity[setParameter name='SQExecutor' value='$SQExecutor']"
If (Test-Path $SQDir){
Write-Host "##teamcity[progressMessage 'Skip Installation: MSBuild Runner Already installed']"
}Else{
Write-Host "##teamcity[progressMessage 'Download SQ MSBuild Runner']"
(new-object net.webclient).DownloadFile($downloadUrl, $tempZipFile)
#Load the assembly
[System.Reflection.Assembly]::LoadWithPartialName("System.IO.Compression.FileSystem") | Out-Null
#Unzip the file
[System.IO.Compression.ZipFile]::ExtractToDirectory($tempZipFile, $SQDir)
Write-Host "##teamcity[progressMessage 'SQ Installed: Ok']"
}]]></param>
<param name="jetbrains_powershell_script_mode" value="CODE" />
<param name="teamcity.step.mode" value="default" />
</parameters>
</runner>
<runner name="" type="jb.nuget.installer">
<parameters>
<param name="nuget.path" value="?NuGet.CommandLine.DEFAULT.nupkg" />
<param name="nuget.updatePackages.mode" value="perConfig" />
<param name="nuget.use.restore" value="restore" />
<param name="nugetCustomPath" value="?NuGet.CommandLine.DEFAULT.nupkg" />
<param name="nugetPathSelector" value="?NuGet.CommandLine.DEFAULT.nupkg" />
<param name="sln.path" value="%solutionPath%\%solutionName%" />
<param name="teamcity.step.mode" value="default" />
</parameters>
</runner>
<runner name="Begin Phase" type="simpleRunner">
<parameters>
<param name="command.executable" value="C:\ProgramData\MSBuidSonarQube.%sqMsbuildVersion%\MSBuild.SonarQube.Runner.exe" />
<param name="command.parameters" value="begin /k:%key% /n:%name% /v:%version% /d:sonar.cs.opencover.reportsPaths=%teamcity.build.checkoutDir%\*.coverage.xml /d:sonar.cs.nunit.reportsPaths=%teamcity.build.checkoutDir%\*.unittest.report.xml /d:sonar.host.url=%sonarhost% /d:sonar.fs.opencover.reportsPaths=%teamcity.build.checkoutDir%\*.coverage.xml /d:sonar.fs.nunit.reportsPaths=%teamcity.build.checkoutDir%\*.unittest.report.xml /d:sonar.verbose=true /d:sonar.login=%userName% /d:sonar.password=%userPassword% %additionalCommandLineArgs%" />
<param name="teamcity.build.workingDir" value="%solutionPath%" />
<param name="teamcity.step.mode" value="default" />
</parameters>
</runner>
<runner name="Build Project" type="VS.Solution">
<parameters>
<param name="build-file-path" value="%solutionPath%\%solutionName%" />
<param name="msbuild.prop.Configuration" value="Release" />
<param name="msbuild_version" value="%msbuildVersion%" />
<param name="run-platform" value="x64" />
<param name="targets" value="Rebuild" />
<param name="teamcity.step.mode" value="default" />
<param name="toolsVersion" value="%msbuildVersion%" />
<param name="vs.version" value="%visualStudioVersion%" />
</parameters>
</runner>
<runner name="End Phase" type="simpleRunner">
<parameters>
<param name="command.executable" value="C:\ProgramData\MSBuidSonarQube.%sqMsbuildVersion%\MSBuild.SonarQube.Runner.exe" />
<param name="command.parameters" value="end" />
<param name="teamcity.build.workingDir" value="%solutionPath%" />
<param name="teamcity.step.mode" value="default" />
</parameters>
</runner>
</build-runners>
<requirements />
</settings>
</meta-runner>