@ -11,11 +11,6 @@ variables:
minorVersion : $[counter('minorVersion', 1076)]
minorVersion : $[counter('minorVersion', 1076)]
lidarrVersion : '$(majorVersion).$(minorVersion)'
lidarrVersion : '$(majorVersion).$(minorVersion)'
buildName : '$(Build.SourceBranchName).$(lidarrVersion)'
buildName : '$(Build.SourceBranchName).$(lidarrVersion)'
windowsInstaller : 'Lidarr.$(buildName).windows-installer.exe'
windowsZip : 'Lidarr.$(buildName).windows.zip'
macOsApp : 'Lidarr.$(buildName).osx-app.zip'
macOsTar : 'Lidarr.$(buildName).osx.tar.gz'
linuxTar : 'Lidarr.$(buildName).linux.tar.gz'
sentryOrg : 'lidarr'
sentryOrg : 'lidarr'
dotnetVersion : '3.0.100'
dotnetVersion : '3.0.100'
@ -44,7 +39,7 @@ stages:
imageName : 'macos-10.14'
imageName : 'macos-10.14'
Windows:
Windows:
osName : 'Windows'
osName : 'Windows'
imageName : ' vs2017-win2016 '
imageName : ' windows-2019 '
pool:
pool:
vmImage : $(imageName)
vmImage : $(imageName)
@ -59,6 +54,7 @@ stages:
displayName : 'Install .net core 3.0'
displayName : 'Install .net core 3.0'
inputs:
inputs:
version : $(dotnetVersion)
version : $(dotnetVersion)
condition : ne(variables['osName'], 'Windows')
- bash : ./build.sh --backend
- bash : ./build.sh --backend
displayName : Build Lidarr Backend
displayName : Build Lidarr Backend
- bash : |
- bash : |
@ -66,22 +62,25 @@ stages:
find ${OUTPUTFOLDER} -depth -empty -type d -exec rm -r "{}" \;
find ${OUTPUTFOLDER} -depth -empty -type d -exec rm -r "{}" \;
find ${TESTSFOLDER} -type f ! -path "*/publish/*" -exec rm -rf {} \;
find ${TESTSFOLDER} -type f ! -path "*/publish/*" -exec rm -rf {} \;
find ${TESTSFOLDER} -depth -empty -type d -exec rm -r "{}" \;
find ${TESTSFOLDER} -depth -empty -type d -exec rm -r "{}" \;
ls -lR
displayName : Clean up intermediate output
displayName : Clean up intermediate output
- publish : $(outputFolder)
- publish : $(outputFolder)
artifact : '$(osName)Backend'
artifact : '$(osName)Backend'
displayName : Publish Backend
displayName : Publish Backend
condition : and(succeeded(), eq(variables['osName'], 'Windows'))
condition : and(succeeded(), eq(variables['osName'], 'Windows'))
- publish : '$(testsFolder)/net 462 /win-x64/publish'
- publish : '$(testsFolder)/net coreapp3.0 /win-x64/publish'
artifact : Windows Tests
artifact : Windows Core Tests
displayName : Publish Windows Test Package
displayName : Publish Windows Test Package
condition : and(succeeded(), eq(variables['osName'], 'Windows'))
condition : and(succeeded(), eq(variables['osName'], 'Windows'))
- publish : '$(testsFolder)/net462/linux-x64/publish'
- publish : '$(testsFolder)/net462/linux-x64/publish'
artifact : LinuxTests
artifact : LinuxTests
displayName : Publish Linux Test Package
displayName : Publish Linux Test Package
condition : and(succeeded(), eq(variables['osName'], 'Windows'))
condition : and(succeeded(), eq(variables['osName'], 'Windows'))
- publish : '$(testsFolder)/net462/osx-x64/publish'
- publish : '$(testsFolder)/netcoreapp3.0/linux-x64/publish'
artifact : MacTests
artifact : LinuxCoreTests
displayName : Publish Linux Test Package
condition : and(succeeded(), eq(variables['osName'], 'Windows'))
- publish : '$(testsFolder)/netcoreapp3.0/osx-x64/publish'
artifact : MacCoreTests
displayName : Publish MacOS Test Package
displayName : Publish MacOS Test Package
condition : and(succeeded(), eq(variables['osName'], 'Windows'))
condition : and(succeeded(), eq(variables['osName'], 'Windows'))
@ -101,7 +100,7 @@ stages:
imageName : 'macos-10.14'
imageName : 'macos-10.14'
Windows:
Windows:
osName : 'Windows'
osName : 'Windows'
imageName : ' vs2017-win2016 '
imageName : ' windows-2019 '
pool:
pool:
vmImage : $(imageName)
vmImage : $(imageName)
steps:
steps:
@ -129,7 +128,7 @@ stages:
- job : Windows_Installer
- job : Windows_Installer
displayName : Create Installer
displayName : Create Installer
pool:
pool:
vmImage : ' vs2017-win2016 '
vmImage : ' windows-2019 '
steps:
steps:
- checkout : self
- checkout : self
fetchDepth : 1
fetchDepth : 1
@ -148,9 +147,9 @@ stages:
- bash : ./build.sh --packages
- bash : ./build.sh --packages
displayName : Create Packages
displayName : Create Packages
- bash : |
- bash : |
./setup/inno/ISCC.exe "./setup/lidarr.iss"
setup/inno/ISCC.exe setup/lidarr.iss //DFramework=netcoreapp3.0
cp ./setup/output/Lidarr.*windows.exe ${BUILD_ARTIFACTSTAGINGDIRECTORY}/${WINDOWSINSTALLER}
cp setup/output/Lidarr.*windows.netcoreapp3.0.exe ${BUILD_ARTIFACTSTAGINGDIRECTORY}/Lidarr.${BUILDNAME}.windows-core-x64-installer.exe
displayName : Create Windows installer
displayName : Create .NET Core Windows installer
- publish : $(Build.ArtifactStagingDirectory)
- publish : $(Build.ArtifactStagingDirectory)
artifact : 'WindowsInstaller'
artifact : 'WindowsInstaller'
displayName : Publish Installer
displayName : Publish Installer
@ -184,37 +183,62 @@ stages:
- bash : |
- bash : |
find . -name "fpcalc" -exec chmod a+x {} \;
find . -name "fpcalc" -exec chmod a+x {} \;
find . -name "Lidarr" -exec chmod a+x {} \;
find . -name "Lidarr" -exec chmod a+x {} \;
displayName : Set Mac executable bits
find . -name "Lidarr.Update" -exec chmod a+x {} \;
displayName : Set executable bits
- task : ArchiveFiles@2
- task : ArchiveFiles@2
displayName : Create Windows zip
displayName : Create Windows Core zip
inputs:
inputs:
archiveFile : '$(Build.ArtifactStagingDirectory)/ $(windowsZip) '
archiveFile : '$(Build.ArtifactStagingDirectory)/ Lidarr.$(buildName).windows-core-x64.zip '
archiveType : 'zip'
archiveType : 'zip'
includeRootFolder : false
includeRootFolder : false
rootFolderOrFile : $(artifactsFolder)/windows/net 462
rootFolderOrFile : $(artifactsFolder)/windows/net coreapp3.0
- task : ArchiveFiles@2
- task : ArchiveFiles@2
displayName : Create MacOS app
displayName : Create MacOS Core app
inputs:
inputs:
archiveFile : '$(Build.ArtifactStagingDirectory)/ $(macOsApp) '
archiveFile : '$(Build.ArtifactStagingDirectory)/ Lidarr.$(buildName).osx-app-core-x64.zip '
archiveType : 'zip'
archiveType : 'zip'
includeRootFolder : false
includeRootFolder : false
rootFolderOrFile : $(artifactsFolder)/macos-app/net462
rootFolderOrFile : $(artifactsFolder)/macos-app/netcoreapp3.0
- task : ArchiveFiles@2
displayName : Create MacOS Core tar
inputs:
archiveFile : '$(Build.ArtifactStagingDirectory)/Lidarr.$(buildName).osx-core-x64.tar.gz'
archiveType : 'tar'
tarCompression : 'gz'
includeRootFolder : false
rootFolderOrFile : $(artifactsFolder)/macos/netcoreapp3.0
- task : ArchiveFiles@2
displayName : Create Linux Mono tar
inputs:
archiveFile : '$(Build.ArtifactStagingDirectory)/Lidarr.$(buildName).linux.tar.gz'
archiveType : 'tar'
tarCompression : 'gz'
includeRootFolder : false
rootFolderOrFile : $(artifactsFolder)/linux-x64/net462
- task : ArchiveFiles@2
- task : ArchiveFiles@2
displayName : Create MacOS tar
displayName : Create Linux Core tar
inputs:
inputs:
archiveFile : '$(Build.ArtifactStagingDirectory)/$(macOsTar)'
archiveFile : '$(Build.ArtifactStagingDirectory)/ Lidarr.$(buildName).linux-core-x64.tar.gz '
archiveType : 'tar'
archiveType : 'tar'
tarCompression : 'gz'
tarCompression : 'gz'
includeRootFolder : false
includeRootFolder : false
rootFolderOrFile : $(artifactsFolder)/macos/net462
rootFolderOrFile : $(artifactsFolder)/ linux-x64/netcoreapp3.0
- task : ArchiveFiles@2
- task : ArchiveFiles@2
displayName : Create Linux tar
displayName : Create ARM32 Core tar
inputs:
inputs:
archiveFile : '$(Build.ArtifactStagingDirectory)/$(linuxTar)'
archiveFile : '$(Build.ArtifactStagingDirectory)/ Lidarr.$(buildName).linux-core-arm.tar.gz '
archiveType : 'tar'
archiveType : 'tar'
tarCompression : 'gz'
tarCompression : 'gz'
includeRootFolder : false
includeRootFolder : false
rootFolderOrFile : $(artifactsFolder)/linux/net462
rootFolderOrFile : $(artifactsFolder)/linux-arm/netcoreapp3.0
- task : ArchiveFiles@2
displayName : Create Linux Core tar
inputs:
archiveFile : '$(Build.ArtifactStagingDirectory)/Lidarr.$(buildName).linux-core-arm64.tar.gz'
archiveType : 'tar'
tarCompression : 'gz'
includeRootFolder : false
rootFolderOrFile : $(artifactsFolder)/linux-arm64/netcoreapp3.0
- publish : $(Build.ArtifactStagingDirectory)
- publish : $(Build.ArtifactStagingDirectory)
artifact : 'Packages'
artifact : 'Packages'
displayName : Publish Packages
displayName : Publish Packages
@ -250,9 +274,19 @@ stages:
displayName : Unit Native
displayName : Unit Native
strategy:
strategy:
matrix:
matrix:
Windows:
MacCore:
osName : 'Mac'
testName : 'MacCore'
imageName : 'macos-10.13'
WindowsCore:
osName : 'Windows'
osName : 'Windows'
imageName : 'vs2017-win2016'
testName : 'WindowsCore'
imageName : 'windows-2019'
LinuxCore:
osName : 'Linux'
testName : 'LinuxCore'
imageName : 'ubuntu-16.04'
pattern : 'Lidarr.**.linux-core-x64.tar.gz'
pool:
pool:
vmImage : $(imageName)
vmImage : $(imageName)
@ -263,15 +297,21 @@ stages:
displayName : 'Install .net core 3.0'
displayName : 'Install .net core 3.0'
inputs:
inputs:
version : $(dotnetVersion)
version : $(dotnetVersion)
condition : ne(variables['osName'], 'Windows')
- task : DownloadPipelineArtifact@2
- task : DownloadPipelineArtifact@2
displayName : Download Test Artifact
displayName : Download Test Artifact
inputs:
inputs:
buildType : 'current'
buildType : 'current'
artifactName : '$( os Name)Tests'
artifactName : '$( test Name)Tests'
targetPath : $(testsFolder)
targetPath : $(testsFolder)
- powershell : Set-Service SCardSvr -StartupType Manual
- powershell : Set-Service SCardSvr -StartupType Manual
displayName : Enable Windows Test Service
displayName : Enable Windows Test Service
condition : and(succeeded(), eq(variables['osName'], 'Windows'))
condition : and(succeeded(), eq(variables['osName'], 'Windows'))
- bash : |
wget https://github.com/acoustid/chromaprint/releases/download/v1.4.3/chromaprint-fpcalc-1.4.3-linux-x86_64.tar.gz
sudo tar xf chromaprint-fpcalc-1.4.3-linux-x86_64.tar.gz --strip-components=1 --directory /usr/bin
displayName : Install fpcalc
condition : and(succeeded(), eq(variables['osName'], 'Linux'))
- bash : |
- bash : |
SYMLINK=5_18_1
SYMLINK=5_18_1
MONOPREFIX=/Library/Frameworks/Mono.framework/Versions/$SYMLINK
MONOPREFIX=/Library/Frameworks/Mono.framework/Versions/$SYMLINK
@ -296,7 +336,7 @@ stages:
inputs:
inputs:
testResultsFormat : 'NUnit'
testResultsFormat : 'NUnit'
testResultsFiles : '**/TestResult.xml'
testResultsFiles : '**/TestResult.xml'
testRunTitle : '$( os Name) Unit Tests'
testRunTitle : '$( test Name) Unit Tests'
failTaskOnFailedTests : true
failTaskOnFailedTests : true
- job : Unit_Docker
- job : Unit_Docker
@ -314,7 +354,10 @@ stages:
containerImage : servarr/testimages:mono-6.10
containerImage : servarr/testimages:mono-6.10
mono604:
mono604:
testName : 'Mono 6.4'
testName : 'Mono 6.4'
containerImage : servarr/testimages:mono-6.12
containerImage : lidarr/testimages:mono-6.4
mono606:
testName : 'Mono 6.6'
containerImage : lidarr/testimages:mono-6.6
pool:
pool:
vmImage : 'ubuntu-16.04'
vmImage : 'ubuntu-16.04'
@ -326,12 +369,17 @@ stages:
steps:
steps:
- bash : mono --version
- bash : mono --version
displayName : Check Mono version
displayName : Check Mono version
- task : UseDotNet@2
displayName : 'Install .net core 3.0'
inputs:
version : $(dotnetVersion)
condition : ne(variables['osName'], 'Windows')
- checkout : none
- checkout : none
- task : DownloadPipelineArtifact@2
- task : DownloadPipelineArtifact@2
displayName : Download Test Artifact
displayName : Download Test Artifact
inputs:
inputs:
buildType : 'current'
buildType : 'current'
artifactName : Windows Tests
artifactName : Linux Tests
targetPath : $(testsFolder)
targetPath : $(testsFolder)
- task : Bash@3
- task : Bash@3
displayName : Run Tests
displayName : Run Tests
@ -356,10 +404,21 @@ stages:
displayName : Integration Native
displayName : Integration Native
strategy:
strategy:
matrix:
matrix:
Windows:
MacCore:
osName : 'Mac'
testName : 'MacCore'
imageName : 'macos-10.13'
pattern : 'Lidarr.**.osx-core-x64.tar.gz'
WindowsCore:
osName : 'Windows'
osName : 'Windows'
imageName : 'vs2017-win2016'
testName : 'WindowsCore'
pattern : 'Lidarr.**.windows.zip'
imageName : 'windows-2019'
pattern : 'Lidarr.**.windows-core-x64.zip'
LinuxCore:
osName : 'Linux'
testName : 'LinuxCore'
imageName : 'ubuntu-16.04'
pattern : 'Lidarr.**.linux-core-x64.tar.gz'
pool:
pool:
vmImage : $(imageName)
vmImage : $(imageName)
@ -377,12 +436,13 @@ stages:
displayName : 'Install .net core 3.0'
displayName : 'Install .net core 3.0'
inputs:
inputs:
version : $(dotnetVersion)
version : $(dotnetVersion)
condition : ne(variables['osName'], 'Windows')
- checkout : none
- checkout : none
- task : DownloadPipelineArtifact@2
- task : DownloadPipelineArtifact@2
displayName : Download Test Artifact
displayName : Download Test Artifact
inputs:
inputs:
buildType : 'current'
buildType : 'current'
artifactName : '$( os Name)Tests'
artifactName : '$( test Name)Tests'
targetPath : $(testsFolder)
targetPath : $(testsFolder)
- task : DownloadPipelineArtifact@2
- task : DownloadPipelineArtifact@2
displayName : Download Build Artifact
displayName : Download Build Artifact
@ -410,7 +470,7 @@ stages:
inputs:
inputs:
testResultsFormat : 'NUnit'
testResultsFormat : 'NUnit'
testResultsFiles : '**/TestResult.xml'
testResultsFiles : '**/TestResult.xml'
testRunTitle : '$( os Name) Integration Tests'
testRunTitle : '$( test Name) Integration Tests'
failTaskOnFailedTests : true
failTaskOnFailedTests : true
displayName : Publish Test Results
displayName : Publish Test Results
@ -429,7 +489,10 @@ stages:
containerImage : servarr/testimages:mono-6.10
containerImage : servarr/testimages:mono-6.10
mono604:
mono604:
testName : 'Mono 6.4'
testName : 'Mono 6.4'
containerImage : servarr/testimages:mono-6.12
containerImage : lidarr/testimages:mono-6.4
mono606:
testName : 'Mono 6.6'
containerImage : lidarr/testimages:mono-6.6
variables:
variables:
pattern : 'Lidarr.**.linux.tar.gz'
pattern : 'Lidarr.**.linux.tar.gz'
@ -444,12 +507,17 @@ stages:
steps:
steps:
- bash : mono --version
- bash : mono --version
displayName : Check Mono version
displayName : Check Mono version
- task : UseDotNet@2
displayName : 'Install .net core 3.0'
inputs:
version : $(dotnetVersion)
condition : ne(variables['osName'], 'Windows')
- checkout : none
- checkout : none
- task : DownloadPipelineArtifact@2
- task : DownloadPipelineArtifact@2
displayName : Download Test Artifact
displayName : Download Test Artifact
inputs:
inputs:
buildType : 'current'
buildType : 'current'
artifactName : Windows Tests
artifactName : Linux Tests
targetPath : $(testsFolder)
targetPath : $(testsFolder)
- task : DownloadPipelineArtifact@2
- task : DownloadPipelineArtifact@2
displayName : Download Build Artifact
displayName : Download Build Artifact
@ -466,7 +534,6 @@ stages:
- bash : |
- bash : |
mkdir -p ./bin/
mkdir -p ./bin/
cp -r -v ${BUILD_ARTIFACTSTAGINGDIRECTORY}/bin/Lidarr/. ./bin/
cp -r -v ${BUILD_ARTIFACTSTAGINGDIRECTORY}/bin/Lidarr/. ./bin/
ls -lR
displayName : Move Package Contents
displayName : Move Package Contents
- task : Bash@3
- task : Bash@3
displayName : Run Integration Tests
displayName : Run Integration Tests
@ -493,17 +560,17 @@ stages:
Linux:
Linux:
osName : 'Linux'
osName : 'Linux'
imageName : 'ubuntu-16.04'
imageName : 'ubuntu-16.04'
pattern : 'Lidarr.**.linux .tar.gz'
pattern : 'Lidarr.**.linux -core-x64 .tar.gz'
failBuild : true
failBuild : true
Mac:
Mac:
osName : 'Mac'
osName : 'Mac'
imageName : 'macos-10.1 4 ' # Fails due to firefox not being installed on image
imageName : 'macos-10.1 3 ' # Fails due to firefox not being installed on image
pattern : 'Lidarr.**.osx .tar.gz'
pattern : 'Lidarr.**.osx -core-x64 .tar.gz'
failBuild : false
failBuild : false
Windows:
Windows:
osName : 'Windows'
osName : 'Windows'
imageName : ' vs2017-win2016 '
imageName : ' windows-2019 '
pattern : 'Lidarr.**.windows .zip'
pattern : 'Lidarr.**.windows -core-x64 .zip'
failBuild : true
failBuild : true
pool:
pool:
@ -514,12 +581,13 @@ stages:
displayName : 'Install .net core 3.0'
displayName : 'Install .net core 3.0'
inputs:
inputs:
version : $(dotnetVersion)
version : $(dotnetVersion)
condition : ne(variables['osName'], 'Windows')
- checkout : none
- checkout : none
- task : DownloadPipelineArtifact@2
- task : DownloadPipelineArtifact@2
displayName : Download Test Artifact
displayName : Download Test Artifact
inputs:
inputs:
buildType : 'current'
buildType : 'current'
artifactName : '$(osName) Tests'
artifactName : '$(osName) Core Tests'
targetPath : $(testsFolder)
targetPath : $(testsFolder)
- task : DownloadPipelineArtifact@2
- task : DownloadPipelineArtifact@2
displayName : Download Build Artifact
displayName : Download Build Artifact
@ -551,7 +619,6 @@ stages:
mv geckodriver _tests
mv geckodriver _tests
displayName : Install Gecko Driver
displayName : Install Gecko Driver
condition : and(succeeded(), ne(variables['osName'], 'Windows'))
condition : and(succeeded(), ne(variables['osName'], 'Windows'))
- bash : ls -lR
- task : Bash@3
- task : Bash@3
displayName : Run Automation Tests
displayName : Run Automation Tests
inputs:
inputs:
@ -581,7 +648,7 @@ stages:
imageName : 'ubuntu-16.04'
imageName : 'ubuntu-16.04'
Windows:
Windows:
osName : 'Windows'
osName : 'Windows'
imageName : ' vs2017-win2016 '
imageName : ' windows-2019 '
pool:
pool:
vmImage : $(imageName)
vmImage : $(imageName)
steps:
steps:
@ -600,7 +667,7 @@ stages:
- job : Analyze_Frontend
- job : Analyze_Frontend
displayName : Frontend
displayName : Frontend
pool:
pool:
vmImage : vs2017-win2016
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
@ -620,10 +687,14 @@ stages:
- job : Analyze_Backend
- job : Analyze_Backend
displayName : Backend
displayName : Backend
pool:
pool:
vmImage : vs2017-win2016
vmImage : windows-2019
variables:
disable.coverage.autogenerate : 'true'
steps:
steps:
- checkout : self # Need history for Sonar analysis
- checkout : self # Need history for Sonar analysis
submodules : true
submodules : true
- powershell : Set-Service SCardSvr -StartupType Manual
displayName : Enable Windows Test Service
- task : SonarCloudPrepare@1
- task : SonarCloudPrepare@1
inputs:
inputs:
SonarCloud : 'SonarCloud'
SonarCloud : 'SonarCloud'
@ -635,22 +706,23 @@ stages:
extraProperties : |
extraProperties : |
sonar.exclusions=**/obj/**,**/*.dll,**/NzbDrone.Core.Test/Files/**/*,./frontend/**,**/ExternalModules/**,./src/Libraries/**
sonar.exclusions=**/obj/**,**/*.dll,**/NzbDrone.Core.Test/Files/**/*,./frontend/**,**/ExternalModules/**,./src/Libraries/**
sonar.coverage.exclusions=**/Lidarr.Api.V1/**/*,**/MonoTorrent/**/*,**/Marr.Data/**/*
sonar.coverage.exclusions=**/Lidarr.Api.V1/**/*,**/MonoTorrent/**/*,**/Marr.Data/**/*
sonar.cs.opencover.reportsPaths=$(Build.SourcesDirectory)/ _tests/ CoverageResults/coverage.opencover.xml
sonar.cs.opencover.reportsPaths=$(Build.SourcesDirectory)/ CoverageResults/** /coverage.opencover.xml
sonar.cs.nunit.reportsPaths=$(Build.SourcesDirectory)/TestResult.xml
sonar.cs.nunit.reportsPaths=$(Build.SourcesDirectory)/TestResult.xml
- task : DotNetCoreCLI@2
- bash : |
displayName : Build backend
./build.sh --backend -f netcoreapp3.0 -r win-x64
inputs:
TEST_DIR=_tests/netcoreapp3.0/win-x64/publish/ ./test.sh Windows Unit Coverage
command : 'build'
projects : 'src/Lidarr.Windows.sln'
- task : Bash@3
displayName : Coverage Unit Tests
displayName : Coverage Unit Tests
- task : SonarCloudAnalyze@1
displayName : Publish SonarCloud Results
- task : reportgenerator@4
displayName : Generate Coverage Report
inputs:
inputs:
targetType : 'filePath'
reports: '$(Build.SourcesDirectory)/CoverageResults/**/coverage.opencover.xml '
filePath : ./test.sh
targetdir: '$(Build.SourcesDirectory)/CoverageResults/combined'
arguments : Windows Unit Coverage
reporttypes: 'HtmlInline_AzurePipelines;Cobertura;Badges'
- task : PublishCodeCoverageResults@1
- task : PublishCodeCoverageResults@1
displayName : Publish Coverage Re sults
displayName : Publish Coverage Re port
inputs:
inputs:
codeCoverageTool : 'cobertura'
codeCoverageTool : 'cobertura'
summaryFileLocation : './ _tests/CoverageResults/coverage.c obertura.xml'
summaryFileLocation : './ CoverageResults/combined/C obertura.xml'
- task : SonarCloudAnalyze@1
reportDirectory : './CoverageResults/combined/'