New: Hookup SonarCloud

pull/3929/head
Qstick 5 years ago
parent 12245d0956
commit 2633c82a01

@ -624,9 +624,9 @@ stages:
displayName: Move Package Contents displayName: Move Package Contents
- bash: | - bash: |
if [[ $OSNAME == "Mac" ]]; then if [[ $OSNAME == "Mac" ]]; then
url=https://github.com/mozilla/geckodriver/releases/download/v0.24.0/geckodriver-v0.24.0-macos.tar.gz url=https://github.com/mozilla/geckodriver/releases/download/v0.26.0/geckodriver-v0.26.0-macos.tar.gz
elif [[ $OSNAME == "Linux" ]]; then elif [[ $OSNAME == "Linux" ]]; then
url=https://github.com/mozilla/geckodriver/releases/download/v0.24.0/geckodriver-v0.24.0-linux64.tar.gz url=https://github.com/mozilla/geckodriver/releases/download/v0.26.0/geckodriver-v0.26.0-linux64.tar.gz
else else
echo "Unhandled OS" echo "Unhandled OS"
exit 1 exit 1
@ -682,66 +682,69 @@ stages:
env: env:
FORCE_COLOR: 0 FORCE_COLOR: 0
# - job: Analyze_Frontend - job: Analyze_Frontend
# displayName: Frontend displayName: Frontend
# condition: eq(variables['system.pullrequest.isfork'], false) pool:
# pool: vmImage: windows-2019
# vmImage: windows-2019 steps:
# steps: - checkout: self # Need history for Sonar analysis
# - checkout: self # Need history for Sonar analysis - task: SonarCloudPrepare@1
# - task: SonarCloudPrepare@1 env:
# env: SONAR_SCANNER_OPTS: ''
# SONAR_SCANNER_OPTS: '' inputs:
# inputs: SonarCloud: 'SonarCloud'
# SonarCloud: 'SonarCloud' organization: 'radarr'
# organization: 'radarr' scannerMode: 'CLI'
# scannerMode: 'CLI' configMode: 'manual'
# configMode: 'manual' cliProjectKey: 'Radarr_Radarr.UI'
# cliProjectKey: 'radarr_Radarr.UI' cliProjectName: 'RadarrI'
# cliProjectName: 'RadarrUI' cliProjectVersion: '$(radarrVersion)'
# cliProjectVersion: '$(radarrVersion)' cliSources: './frontend'
# cliSources: './frontend' - task: SonarCloudAnalyze@1
# - task: SonarCloudAnalyze@1
# - job: Analyze_Backend - job: Analyze_Backend
# displayName: Backend displayName: Backend
# condition: eq(variables['system.pullrequest.isfork'], false) pool:
# pool: vmImage: windows-2019
# vmImage: windows-2019 variables:
# steps: disable.coverage.autogenerate: 'true'
# - checkout: self # Need history for Sonar analysis steps:
# submodules: true - task: UseDotNet@2
# - task: UseDotNet@2 displayName: 'Install .net core'
# displayName: 'Install .net core' inputs:
# inputs: version: $(dotnetVersion)
# version: $(dotnetVersion) - checkout: self # Need history for Sonar analysis
# - task: SonarCloudPrepare@1 submodules: true
# inputs: - powershell: Set-Service SCardSvr -StartupType Manual
# SonarCloud: 'SonarCloud' displayName: Enable Windows Test Service
# organization: 'radarr' - task: SonarCloudPrepare@1
# scannerMode: 'MSBuild' inputs:
# projectKey: 'radarr_Radarr' SonarCloud: 'SonarCloud'
# projectName: 'Radarr' organization: 'radarr'
# projectVersion: '$(radarrVersion)' scannerMode: 'MSBuild'
# extraProperties: | projectKey: 'Radarr_Radarr'
# sonar.exclusions=**/obj/**,**/*.dll,**/NzbDrone.Core.Test/Files/**/*,./frontend/**,**/ExternalModules/**,./src/Libraries/** projectName: 'Radarr'
# sonar.coverage.exclusions=**/Radarr.Api.V1/**/*,**/MonoTorrent/**/*,**/Marr.Data/**/* projectVersion: '$(radarrVersion)'
# sonar.cs.opencover.reportsPaths=$(Build.SourcesDirectory)/_tests/CoverageResults/coverage.opencover.xml extraProperties: |
# sonar.cs.nunit.reportsPaths=$(Build.SourcesDirectory)/TestResult.xml sonar.exclusions=**/obj/**,**/*.dll,**/NzbDrone.Core.Test/Files/**/*,./frontend/**,**/ExternalModules/**,./src/Libraries/**
# - task: DotNetCoreCLI@2 sonar.coverage.exclusions=**/Radarr.Api.V3/**/*,**/Radarr.Api/**/*,**/MonoTorrent/**/*,**/Marr.Data/**/*
# displayName: Build backend sonar.cs.opencover.reportsPaths=$(Build.SourcesDirectory)/CoverageResults/**/coverage.opencover.xml
# inputs: sonar.cs.nunit.reportsPaths=$(Build.SourcesDirectory)/TestResult.xml
# command: 'build' - bash: |
# projects: 'src/Radarr.Windows.sln' ./build.sh --backend -f netcoreapp3.1 -r win-x64
# - task: Bash@3 TEST_DIR=_tests/netcoreapp3.1/win-x64/publish/ ./test.sh Windows Unit Coverage
# displayName: Coverage Unit Tests displayName: Coverage Unit Tests
# inputs: - task: SonarCloudAnalyze@1
# targetType: 'filePath' displayName: Publish SonarCloud Results
# filePath: ./test.sh - task: reportgenerator@4
# arguments: Windows Unit Coverage displayName: Generate Coverage Report
# - task: PublishCodeCoverageResults@1 inputs:
# displayName: Publish Coverage Results reports: '$(Build.SourcesDirectory)/CoverageResults/**/coverage.opencover.xml'
# inputs: targetdir: '$(Build.SourcesDirectory)/CoverageResults/combined'
# codeCoverageTool: 'cobertura' reporttypes: 'HtmlInline_AzurePipelines;Cobertura;Badges'
# summaryFileLocation: './_tests/CoverageResults/coverage.cobertura.xml' - task: PublishCodeCoverageResults@1
# - task: SonarCloudAnalyze@1 displayName: Publish Coverage Report
inputs:
codeCoverageTool: 'cobertura'
summaryFileLocation: './CoverageResults/combined/Cobertura.xml'
reportDirectory: './CoverageResults/combined/'

@ -9,6 +9,9 @@
<PackageReference Include="NunitXml.TestLogger" Version="2.1.41" /> <PackageReference Include="NunitXml.TestLogger" Version="2.1.41" />
<PackageReference Include="NBuilder" Version="6.0.1" /> <PackageReference Include="NBuilder" Version="6.0.1" />
</ItemGroup> </ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'netcoreapp3.1'">
<PackageReference Include="coverlet.collector" Version="1.1.0" PrivateAssets="all" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\NzbDrone.Core\Radarr.Core.csproj" /> <ProjectReference Include="..\NzbDrone.Core\Radarr.Core.csproj" />
<ProjectReference Include="..\NzbDrone.Test.Common\Radarr.Test.Common.csproj" /> <ProjectReference Include="..\NzbDrone.Test.Common\Radarr.Test.Common.csproj" />

@ -8,6 +8,9 @@
<PackageReference Include="NUnit3TestAdapter" Version="3.15.1" /> <PackageReference Include="NUnit3TestAdapter" Version="3.15.1" />
<PackageReference Include="NunitXml.TestLogger" Version="2.1.41" /> <PackageReference Include="NunitXml.TestLogger" Version="2.1.41" />
</ItemGroup> </ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'netcoreapp3.1'">
<PackageReference Include="coverlet.collector" Version="1.1.0" PrivateAssets="all" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\NzbDrone.Host\Radarr.Host.csproj" /> <ProjectReference Include="..\NzbDrone.Host\Radarr.Host.csproj" />
<ProjectReference Include="..\NzbDrone.Test.Common\Radarr.Test.Common.csproj" /> <ProjectReference Include="..\NzbDrone.Test.Common\Radarr.Test.Common.csproj" />

@ -10,6 +10,9 @@
<PackageReference Include="NBuilder" Version="6.0.1" /> <PackageReference Include="NBuilder" Version="6.0.1" />
<PackageReference Include="System.Data.SQLite.Core.Lidarr" Version="1.0.111.0-5" /> <PackageReference Include="System.Data.SQLite.Core.Lidarr" Version="1.0.111.0-5" />
</ItemGroup> </ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'netcoreapp3.1'">
<PackageReference Include="coverlet.collector" Version="1.1.0" PrivateAssets="all" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\NzbDrone.Test.Common\Radarr.Test.Common.csproj" /> <ProjectReference Include="..\NzbDrone.Test.Common\Radarr.Test.Common.csproj" />
<ProjectReference Include="..\NzbDrone.Core\Radarr.Core.csproj" /> <ProjectReference Include="..\NzbDrone.Core\Radarr.Core.csproj" />

@ -8,6 +8,9 @@
<PackageReference Include="NUnit3TestAdapter" Version="3.15.1" /> <PackageReference Include="NUnit3TestAdapter" Version="3.15.1" />
<PackageReference Include="NunitXml.TestLogger" Version="2.1.41" /> <PackageReference Include="NunitXml.TestLogger" Version="2.1.41" />
</ItemGroup> </ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'netcoreapp3.1'">
<PackageReference Include="coverlet.collector" Version="1.1.0" PrivateAssets="all" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\NzbDrone.Host\Radarr.Host.csproj" /> <ProjectReference Include="..\NzbDrone.Host\Radarr.Host.csproj" />
<ProjectReference Include="..\NzbDrone.Test.Common\Radarr.Test.Common.csproj" /> <ProjectReference Include="..\NzbDrone.Test.Common\Radarr.Test.Common.csproj" />

@ -8,6 +8,9 @@
<PackageReference Include="NUnit3TestAdapter" Version="3.15.1" /> <PackageReference Include="NUnit3TestAdapter" Version="3.15.1" />
<PackageReference Include="NunitXml.TestLogger" Version="2.1.41" /> <PackageReference Include="NunitXml.TestLogger" Version="2.1.41" />
</ItemGroup> </ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'netcoreapp3.1'">
<PackageReference Include="coverlet.collector" Version="1.1.0" PrivateAssets="all" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\NzbDrone.Test.Common\Radarr.Test.Common.csproj" /> <ProjectReference Include="..\NzbDrone.Test.Common\Radarr.Test.Common.csproj" />
</ItemGroup> </ItemGroup>

@ -16,6 +16,7 @@
See https://github.com/xamarin/XamarinComponents/issues/282 See https://github.com/xamarin/XamarinComponents/issues/282
--> -->
<ItemGroup Condition="'$(TargetFramework)' == 'netcoreapp3.1'"> <ItemGroup Condition="'$(TargetFramework)' == 'netcoreapp3.1'">
<PackageReference Include="coverlet.collector" Version="1.1.0" PrivateAssets="all" />
<PackageReference Include="Mono.Posix.NETStandard" Version="1.0.0" /> <PackageReference Include="Mono.Posix.NETStandard" Version="1.0.0" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

@ -8,6 +8,9 @@
<PackageReference Include="NUnit3TestAdapter" Version="3.15.1" /> <PackageReference Include="NUnit3TestAdapter" Version="3.15.1" />
<PackageReference Include="NunitXml.TestLogger" Version="2.1.41" /> <PackageReference Include="NunitXml.TestLogger" Version="2.1.41" />
</ItemGroup> </ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'netcoreapp3.1'">
<PackageReference Include="coverlet.collector" Version="1.1.0" PrivateAssets="all" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\NzbDrone.Test.Common\Radarr.Test.Common.csproj" /> <ProjectReference Include="..\NzbDrone.Test.Common\Radarr.Test.Common.csproj" />
<ProjectReference Include="..\NzbDrone.Update\Radarr.Update.csproj" /> <ProjectReference Include="..\NzbDrone.Update\Radarr.Update.csproj" />

@ -8,6 +8,9 @@
<PackageReference Include="NUnit3TestAdapter" Version="3.15.1" /> <PackageReference Include="NUnit3TestAdapter" Version="3.15.1" />
<PackageReference Include="NunitXml.TestLogger" Version="2.1.41" /> <PackageReference Include="NunitXml.TestLogger" Version="2.1.41" />
</ItemGroup> </ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'netcoreapp3.1'">
<PackageReference Include="coverlet.collector" Version="1.1.0" PrivateAssets="all" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\NzbDrone.Common.Test\Radarr.Common.Test.csproj" /> <ProjectReference Include="..\NzbDrone.Common.Test\Radarr.Common.Test.csproj" />
<ProjectReference Include="..\NzbDrone.Test.Common\Radarr.Test.Common.csproj" /> <ProjectReference Include="..\NzbDrone.Test.Common\Radarr.Test.Common.csproj" />

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8" ?>
<RunSettings>
<DataCollectionRunSettings>
<DataCollectors>
<DataCollector friendlyName="XPlat code coverage">
<Configuration>
<Format>opencover</Format>
<Exclude>[Radarr.*.Test]*,[Radarr.Test.*]*,[Radarr.Api*]*,[Marr.Data]*,[MonoTorrent]*</Exclude>
</Configuration>
</DataCollector>
</DataCollectors>
</DataCollectionRunSettings>
<InProcDataCollectionRunSettings>
<InProcDataCollectors>
<InProcDataCollector assemblyQualifiedName="Coverlet.Collector.DataCollection.CoverletInProcDataCollector, coverlet.collector, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null"
friendlyName="XPlat Code Coverage"
enabled="True"
codebase="coverlet.collector.dll" />
</InProcDataCollectors>
</InProcDataCollectionRunSettings>
</RunSettings>

@ -16,16 +16,12 @@ if [ -d "$TEST_DIR/_tests" ]; then
TEST_DIR="$TEST_DIR/_tests" TEST_DIR="$TEST_DIR/_tests"
fi fi
COVERAGE_RESULT_DIRECTORY="$TEST_DIR/CoverageResults/"
rm -f "$TEST_LOG_FILE" rm -f "$TEST_LOG_FILE"
# Uncomment to log test output to a file instead of the console # Uncomment to log test output to a file instead of the console
export RADARR_TESTS_LOG_OUTPUT="File" export RADARR_TESTS_LOG_OUTPUT="File"
NUNIT="dotnet vstest" VSTEST_PARAMS="--Platform:x64 --logger:nunit;LogFilePath=TestResult.xml"
NUNIT_COMMAND="$NUNIT"
NUNIT_PARAMS="--Platform:x64 --logger:nunit;LogFilePath=TestResult.xml"
if [ "$PLATFORM" = "Mac" ]; then if [ "$PLATFORM" = "Mac" ]; then
@ -63,20 +59,13 @@ for i in `find $TEST_DIR -name "$TEST_PATTERN"`;
do ASSEMBLIES="$ASSEMBLIES $i" do ASSEMBLIES="$ASSEMBLIES $i"
done done
DOTNET_PARAMS="$ASSEMBLIES --TestCaseFilter:$WHERE $VSTEST_PARAMS"
if [ "$COVERAGE" = "Coverage" ]; then if [ "$COVERAGE" = "Coverage" ]; then
if [ "$PLATFORM" = "Windows" ] || [ "$PLATFORM" = "Linux" ]; then dotnet vstest $DOTNET_PARAMS --settings:"src/coverlet.runsettings" --ResultsDirectory:./CoverageResults
dotnet tool install coverlet.console --tool-path="$TEST_DIR/coverlet/" EXIT_CODE=$?
mkdir $COVERAGE_RESULT_DIRECTORY
OPEN_COVER="$TEST_DIR/coverlet/coverlet"
$OPEN_COVER "$TEST_DIR/" --verbosity "detailed" --format "cobertura" --format "opencover" --output "$COVERAGE_RESULT_DIRECTORY" --exclude "[Radarr.*.Test]*" --exclude "[Radarr.Test.*]*" --exclude "[Radarr.Api*]*" --exclude "[Marr.Data]*" --exclude "[MonoTorrent]*" --exclude "[CurlSharp]*" --target "$NUNIT" --targetargs "$NUNIT_PARAMS --where=\"$WHERE\" $ASSEMBLIES";
EXIT_CODE=$?
else
echo "Coverage only supported on Windows and Linux"
exit 3
fi
elif [ "$COVERAGE" = "Test" ] ; then elif [ "$COVERAGE" = "Test" ] ; then
echo "$NUNIT_COMMAND $ASSEMBLIES --TestCaseFilter:$WHERE $NUNIT_PARAMS" dotnet vstest $DOTNET_PARAMS
$NUNIT_COMMAND $ASSEMBLIES --TestCaseFilter:"$WHERE" $NUNIT_PARAMS
EXIT_CODE=$? EXIT_CODE=$?
else else
echo "Run Type must be provided as third argument: Coverage or Test" echo "Run Type must be provided as third argument: Coverage or Test"

Loading…
Cancel
Save