|
|
|
@ -15,12 +15,12 @@ variables:
|
|
|
|
|
buildName: '$(Build.SourceBranchName).$(radarrVersion)'
|
|
|
|
|
sentryOrg: 'servarr'
|
|
|
|
|
sentryUrl: 'https://sentry.servarr.com'
|
|
|
|
|
dotnetVersion: '6.0.421'
|
|
|
|
|
dotnetVersion: '8.0.204'
|
|
|
|
|
nodeVersion: '20.X'
|
|
|
|
|
innoVersion: '6.2.2'
|
|
|
|
|
windowsImage: 'windows-2022'
|
|
|
|
|
linuxImage: 'ubuntu-20.04'
|
|
|
|
|
macImage: 'macOS-11'
|
|
|
|
|
macImage: 'macOS-12'
|
|
|
|
|
|
|
|
|
|
trigger:
|
|
|
|
|
branches:
|
|
|
|
@ -122,27 +122,27 @@ stages:
|
|
|
|
|
artifact: '$(osName)Backend'
|
|
|
|
|
displayName: Publish Backend
|
|
|
|
|
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
|
|
|
|
|
- publish: '$(testsFolder)/net6.0/win-x64/publish'
|
|
|
|
|
- publish: '$(testsFolder)/net8.0/win-x64/publish'
|
|
|
|
|
artifact: win-x64-tests
|
|
|
|
|
displayName: Publish win-x64 Test Package
|
|
|
|
|
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
|
|
|
|
|
- publish: '$(testsFolder)/net6.0/linux-x64/publish'
|
|
|
|
|
- publish: '$(testsFolder)/net8.0/linux-x64/publish'
|
|
|
|
|
artifact: linux-x64-tests
|
|
|
|
|
displayName: Publish linux-x64 Test Package
|
|
|
|
|
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
|
|
|
|
|
- publish: '$(testsFolder)/net6.0/linux-x86/publish'
|
|
|
|
|
- publish: '$(testsFolder)/net8.0/linux-x86/publish'
|
|
|
|
|
artifact: linux-x86-tests
|
|
|
|
|
displayName: Publish linux-x86 Test Package
|
|
|
|
|
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
|
|
|
|
|
- publish: '$(testsFolder)/net6.0/linux-musl-x64/publish'
|
|
|
|
|
- publish: '$(testsFolder)/net8.0/linux-musl-x64/publish'
|
|
|
|
|
artifact: linux-musl-x64-tests
|
|
|
|
|
displayName: Publish linux-musl-x64 Test Package
|
|
|
|
|
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
|
|
|
|
|
- publish: '$(testsFolder)/net6.0/freebsd-x64/publish'
|
|
|
|
|
- publish: '$(testsFolder)/net8.0/freebsd-x64/publish'
|
|
|
|
|
artifact: freebsd-x64-tests
|
|
|
|
|
displayName: Publish freebsd-x64 Test Package
|
|
|
|
|
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
|
|
|
|
|
- publish: '$(testsFolder)/net6.0/osx-x64/publish'
|
|
|
|
|
- publish: '$(testsFolder)/net8.0/osx-x64/publish'
|
|
|
|
|
artifact: osx-x64-tests
|
|
|
|
|
displayName: Publish osx-x64 Test Package
|
|
|
|
|
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
|
|
|
|
@ -260,21 +260,21 @@ stages:
|
|
|
|
|
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).windows-core-x64.zip'
|
|
|
|
|
archiveType: 'zip'
|
|
|
|
|
includeRootFolder: false
|
|
|
|
|
rootFolderOrFile: $(artifactsFolder)/win-x64/net6.0
|
|
|
|
|
rootFolderOrFile: $(artifactsFolder)/win-x64/net8.0
|
|
|
|
|
- task: ArchiveFiles@2
|
|
|
|
|
displayName: Create win-x86 zip
|
|
|
|
|
inputs:
|
|
|
|
|
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).windows-core-x86.zip'
|
|
|
|
|
archiveType: 'zip'
|
|
|
|
|
includeRootFolder: false
|
|
|
|
|
rootFolderOrFile: $(artifactsFolder)/win-x86/net6.0
|
|
|
|
|
rootFolderOrFile: $(artifactsFolder)/win-x86/net8.0
|
|
|
|
|
- task: ArchiveFiles@2
|
|
|
|
|
displayName: Create osx-x64 app
|
|
|
|
|
inputs:
|
|
|
|
|
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).osx-app-core-x64.zip'
|
|
|
|
|
archiveType: 'zip'
|
|
|
|
|
includeRootFolder: false
|
|
|
|
|
rootFolderOrFile: $(artifactsFolder)/osx-x64-app/net6.0
|
|
|
|
|
rootFolderOrFile: $(artifactsFolder)/osx-x64-app/net8.0
|
|
|
|
|
- task: ArchiveFiles@2
|
|
|
|
|
displayName: Create osx-x64 tar
|
|
|
|
|
inputs:
|
|
|
|
@ -282,14 +282,14 @@ stages:
|
|
|
|
|
archiveType: 'tar'
|
|
|
|
|
tarCompression: 'gz'
|
|
|
|
|
includeRootFolder: false
|
|
|
|
|
rootFolderOrFile: $(artifactsFolder)/osx-x64/net6.0
|
|
|
|
|
rootFolderOrFile: $(artifactsFolder)/osx-x64/net8.0
|
|
|
|
|
- task: ArchiveFiles@2
|
|
|
|
|
displayName: Create osx-arm64 app
|
|
|
|
|
inputs:
|
|
|
|
|
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).osx-app-core-arm64.zip'
|
|
|
|
|
archiveType: 'zip'
|
|
|
|
|
includeRootFolder: false
|
|
|
|
|
rootFolderOrFile: $(artifactsFolder)/osx-arm64-app/net6.0
|
|
|
|
|
rootFolderOrFile: $(artifactsFolder)/osx-arm64-app/net8.0
|
|
|
|
|
- task: ArchiveFiles@2
|
|
|
|
|
displayName: Create osx-arm64 tar
|
|
|
|
|
inputs:
|
|
|
|
@ -297,7 +297,7 @@ stages:
|
|
|
|
|
archiveType: 'tar'
|
|
|
|
|
tarCompression: 'gz'
|
|
|
|
|
includeRootFolder: false
|
|
|
|
|
rootFolderOrFile: $(artifactsFolder)/osx-arm64/net6.0
|
|
|
|
|
rootFolderOrFile: $(artifactsFolder)/osx-arm64/net8.0
|
|
|
|
|
- task: ArchiveFiles@2
|
|
|
|
|
displayName: Create linux-x64 tar
|
|
|
|
|
inputs:
|
|
|
|
@ -305,7 +305,7 @@ stages:
|
|
|
|
|
archiveType: 'tar'
|
|
|
|
|
tarCompression: 'gz'
|
|
|
|
|
includeRootFolder: false
|
|
|
|
|
rootFolderOrFile: $(artifactsFolder)/linux-x64/net6.0
|
|
|
|
|
rootFolderOrFile: $(artifactsFolder)/linux-x64/net8.0
|
|
|
|
|
- task: ArchiveFiles@2
|
|
|
|
|
displayName: Create linux-musl-x64 tar
|
|
|
|
|
inputs:
|
|
|
|
@ -313,7 +313,7 @@ stages:
|
|
|
|
|
archiveType: 'tar'
|
|
|
|
|
tarCompression: 'gz'
|
|
|
|
|
includeRootFolder: false
|
|
|
|
|
rootFolderOrFile: $(artifactsFolder)/linux-musl-x64/net6.0
|
|
|
|
|
rootFolderOrFile: $(artifactsFolder)/linux-musl-x64/net8.0
|
|
|
|
|
- task: ArchiveFiles@2
|
|
|
|
|
displayName: Create linux-x86 tar
|
|
|
|
|
inputs:
|
|
|
|
@ -321,7 +321,7 @@ stages:
|
|
|
|
|
archiveType: 'tar'
|
|
|
|
|
tarCompression: 'gz'
|
|
|
|
|
includeRootFolder: false
|
|
|
|
|
rootFolderOrFile: $(artifactsFolder)/linux-x86/net6.0
|
|
|
|
|
rootFolderOrFile: $(artifactsFolder)/linux-x86/net8.0
|
|
|
|
|
- task: ArchiveFiles@2
|
|
|
|
|
displayName: Create linux-arm tar
|
|
|
|
|
inputs:
|
|
|
|
@ -329,7 +329,7 @@ stages:
|
|
|
|
|
archiveType: 'tar'
|
|
|
|
|
tarCompression: 'gz'
|
|
|
|
|
includeRootFolder: false
|
|
|
|
|
rootFolderOrFile: $(artifactsFolder)/linux-arm/net6.0
|
|
|
|
|
rootFolderOrFile: $(artifactsFolder)/linux-arm/net8.0
|
|
|
|
|
- task: ArchiveFiles@2
|
|
|
|
|
displayName: Create linux-musl-arm tar
|
|
|
|
|
inputs:
|
|
|
|
@ -337,7 +337,7 @@ stages:
|
|
|
|
|
archiveType: 'tar'
|
|
|
|
|
tarCompression: 'gz'
|
|
|
|
|
includeRootFolder: false
|
|
|
|
|
rootFolderOrFile: $(artifactsFolder)/linux-musl-arm/net6.0
|
|
|
|
|
rootFolderOrFile: $(artifactsFolder)/linux-musl-arm/net8.0
|
|
|
|
|
- task: ArchiveFiles@2
|
|
|
|
|
displayName: Create linux-arm64 tar
|
|
|
|
|
inputs:
|
|
|
|
@ -345,7 +345,7 @@ stages:
|
|
|
|
|
archiveType: 'tar'
|
|
|
|
|
tarCompression: 'gz'
|
|
|
|
|
includeRootFolder: false
|
|
|
|
|
rootFolderOrFile: $(artifactsFolder)/linux-arm64/net6.0
|
|
|
|
|
rootFolderOrFile: $(artifactsFolder)/linux-arm64/net8.0
|
|
|
|
|
- task: ArchiveFiles@2
|
|
|
|
|
displayName: Create linux-musl-arm64 tar
|
|
|
|
|
inputs:
|
|
|
|
@ -353,7 +353,7 @@ stages:
|
|
|
|
|
archiveType: 'tar'
|
|
|
|
|
tarCompression: 'gz'
|
|
|
|
|
includeRootFolder: false
|
|
|
|
|
rootFolderOrFile: $(artifactsFolder)/linux-musl-arm64/net6.0
|
|
|
|
|
rootFolderOrFile: $(artifactsFolder)/linux-musl-arm64/net8.0
|
|
|
|
|
- task: ArchiveFiles@2
|
|
|
|
|
displayName: Create freebsd-x64 tar
|
|
|
|
|
inputs:
|
|
|
|
@ -361,7 +361,7 @@ stages:
|
|
|
|
|
archiveType: 'tar'
|
|
|
|
|
tarCompression: 'gz'
|
|
|
|
|
includeRootFolder: false
|
|
|
|
|
rootFolderOrFile: $(artifactsFolder)/freebsd-x64/net6.0
|
|
|
|
|
rootFolderOrFile: $(artifactsFolder)/freebsd-x64/net8.0
|
|
|
|
|
- publish: $(Build.ArtifactStagingDirectory)
|
|
|
|
|
artifact: 'Packages'
|
|
|
|
|
displayName: Publish Packages
|
|
|
|
@ -481,6 +481,7 @@ stages:
|
|
|
|
|
testResultsFiles: '**/TestResult.xml'
|
|
|
|
|
testRunTitle: '$(testName) Unit Tests'
|
|
|
|
|
failTaskOnFailedTests: true
|
|
|
|
|
failTaskOnMissingResultsFile: true
|
|
|
|
|
|
|
|
|
|
- job: Unit_Docker
|
|
|
|
|
displayName: Unit Docker
|
|
|
|
@ -533,6 +534,9 @@ stages:
|
|
|
|
|
ls -lR ${TESTSFOLDER}
|
|
|
|
|
${TESTSFOLDER}/test.sh Linux Unit Test
|
|
|
|
|
displayName: Run Tests
|
|
|
|
|
env:
|
|
|
|
|
COMPlus_EnableDiagnostics: 0
|
|
|
|
|
DOTNET_GCHeapHardLimit: 10000000
|
|
|
|
|
- task: PublishTestResults@2
|
|
|
|
|
displayName: Publish Test Results
|
|
|
|
|
inputs:
|
|
|
|
@ -540,6 +544,7 @@ stages:
|
|
|
|
|
testResultsFiles: '**/TestResult.xml'
|
|
|
|
|
testRunTitle: '$(testName) Unit Tests'
|
|
|
|
|
failTaskOnFailedTests: true
|
|
|
|
|
failTaskOnMissingResultsFile: true
|
|
|
|
|
|
|
|
|
|
- job: Unit_LinuxCore_Postgres14
|
|
|
|
|
displayName: Unit Native LinuxCore with Postgres14 Database
|
|
|
|
@ -596,6 +601,7 @@ stages:
|
|
|
|
|
testResultsFiles: '**/TestResult.xml'
|
|
|
|
|
testRunTitle: 'LinuxCore Postgres14 Unit Tests'
|
|
|
|
|
failTaskOnFailedTests: true
|
|
|
|
|
failTaskOnMissingResultsFile: true
|
|
|
|
|
|
|
|
|
|
- job: Unit_LinuxCore_Postgres15
|
|
|
|
|
displayName: Unit Native LinuxCore with Postgres15 Database
|
|
|
|
@ -652,6 +658,7 @@ stages:
|
|
|
|
|
testResultsFiles: '**/TestResult.xml'
|
|
|
|
|
testRunTitle: 'LinuxCore Postgres15 Unit Tests'
|
|
|
|
|
failTaskOnFailedTests: true
|
|
|
|
|
failTaskOnMissingResultsFile: true
|
|
|
|
|
|
|
|
|
|
- stage: Integration
|
|
|
|
|
displayName: Integration
|
|
|
|
@ -734,6 +741,7 @@ stages:
|
|
|
|
|
testResultsFiles: '**/TestResult.xml'
|
|
|
|
|
testRunTitle: '$(testName) Integration Tests'
|
|
|
|
|
failTaskOnFailedTests: true
|
|
|
|
|
failTaskOnMissingResultsFile: true
|
|
|
|
|
displayName: Publish Test Results
|
|
|
|
|
|
|
|
|
|
- job: Integration_LinuxCore_Postgres14
|
|
|
|
@ -796,6 +804,7 @@ stages:
|
|
|
|
|
testResultsFiles: '**/TestResult.xml'
|
|
|
|
|
testRunTitle: 'Integration LinuxCore Postgres14 Database Integration Tests'
|
|
|
|
|
failTaskOnFailedTests: true
|
|
|
|
|
failTaskOnMissingResultsFile: true
|
|
|
|
|
displayName: Publish Test Results
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -859,6 +868,7 @@ stages:
|
|
|
|
|
testResultsFiles: '**/TestResult.xml'
|
|
|
|
|
testRunTitle: 'Integration LinuxCore Postgres15 Database Integration Tests'
|
|
|
|
|
failTaskOnFailedTests: true
|
|
|
|
|
failTaskOnMissingResultsFile: true
|
|
|
|
|
displayName: Publish Test Results
|
|
|
|
|
|
|
|
|
|
- job: Integration_FreeBSD
|
|
|
|
@ -905,6 +915,7 @@ stages:
|
|
|
|
|
testResultsFiles: '**/TestResult.xml'
|
|
|
|
|
testRunTitle: 'FreeBSD Integration Tests'
|
|
|
|
|
failTaskOnFailedTests: true
|
|
|
|
|
failTaskOnMissingResultsFile: true
|
|
|
|
|
displayName: Publish Test Results
|
|
|
|
|
|
|
|
|
|
- job: Integration_Docker
|
|
|
|
@ -974,6 +985,7 @@ stages:
|
|
|
|
|
testResultsFiles: '**/TestResult.xml'
|
|
|
|
|
testRunTitle: '$(testName) Integration Tests'
|
|
|
|
|
failTaskOnFailedTests: true
|
|
|
|
|
failTaskOnMissingResultsFile: true
|
|
|
|
|
displayName: Publish Test Results
|
|
|
|
|
|
|
|
|
|
- stage: Automation
|
|
|
|
@ -1055,6 +1067,7 @@ stages:
|
|
|
|
|
testResultsFiles: '**/TestResult.xml'
|
|
|
|
|
testRunTitle: '$(osName) Automation Tests'
|
|
|
|
|
failTaskOnFailedTests: $(failBuild)
|
|
|
|
|
failTaskOnMissingResultsFile: $(failBuild)
|
|
|
|
|
displayName: Publish Test Results
|
|
|
|
|
|
|
|
|
|
- stage: Analyze
|
|
|
|
@ -1220,8 +1233,8 @@ stages:
|
|
|
|
|
sonar.cs.opencover.reportsPaths=$(Build.SourcesDirectory)/CoverageResults/**/coverage.opencover.xml
|
|
|
|
|
sonar.cs.nunit.reportsPaths=$(Build.SourcesDirectory)/TestResult.xml
|
|
|
|
|
- bash: |
|
|
|
|
|
./build.sh --backend -f net6.0 -r win-x64
|
|
|
|
|
TEST_DIR=_tests/net6.0/win-x64/publish/ ./test.sh Windows Unit Coverage
|
|
|
|
|
./build.sh --backend -f net8.0 -r win-x64
|
|
|
|
|
TEST_DIR=_tests/net8.0/win-x64/publish/ ./test.sh Windows Unit Coverage
|
|
|
|
|
displayName: Coverage Unit Tests
|
|
|
|
|
- task: SonarCloudAnalyze@1
|
|
|
|
|
condition: eq(variables['System.PullRequest.IsFork'], 'False')
|
|
|
|
|