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>