|
|
|
@ -15,7 +15,7 @@ variables:
|
|
|
|
|
buildName: '$(Build.SourceBranchName).$(radarrVersion)'
|
|
|
|
|
sentryOrg: 'servarr'
|
|
|
|
|
sentryUrl: 'https://sentry.servarr.com'
|
|
|
|
|
dotnetVersion: '6.0.427'
|
|
|
|
|
dotnetVersion: '8.0.405'
|
|
|
|
|
nodeVersion: '20.X'
|
|
|
|
|
innoVersion: '6.2.2'
|
|
|
|
|
windowsImage: 'windows-2022'
|
|
|
|
@ -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'))
|
|
|
|
@ -189,7 +189,7 @@ stages:
|
|
|
|
|
artifact: '$(osName)Frontend'
|
|
|
|
|
displayName: Publish Frontend
|
|
|
|
|
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- stage: Installer
|
|
|
|
|
dependsOn:
|
|
|
|
|
- Build_Backend
|
|
|
|
@ -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
|
|
|
|
@ -392,7 +392,7 @@ stages:
|
|
|
|
|
SENTRY_AUTH_TOKEN: $(sentryAuthTokenServarr)
|
|
|
|
|
SENTRY_ORG: $(sentryOrg)
|
|
|
|
|
SENTRY_URL: $(sentryUrl)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- stage: Unit_Test
|
|
|
|
|
displayName: Unit Tests
|
|
|
|
|
dependsOn: Build_Backend
|
|
|
|
@ -499,11 +499,11 @@ stages:
|
|
|
|
|
|
|
|
|
|
pool:
|
|
|
|
|
vmImage: ${{ variables.linuxImage }}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
container: $[ variables['containerImage'] ]
|
|
|
|
|
|
|
|
|
|
timeoutInMinutes: 10
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
steps:
|
|
|
|
|
- task: UseDotNet@2
|
|
|
|
|
displayName: 'Install .NET'
|
|
|
|
@ -540,7 +540,7 @@ stages:
|
|
|
|
|
testResultsFiles: '**/TestResult.xml'
|
|
|
|
|
testRunTitle: '$(testName) Unit Tests'
|
|
|
|
|
failTaskOnFailedTests: true
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- job: Unit_LinuxCore_Postgres14
|
|
|
|
|
displayName: Unit Native LinuxCore with Postgres14 Database
|
|
|
|
|
dependsOn: Prepare
|
|
|
|
@ -557,7 +557,7 @@ stages:
|
|
|
|
|
vmImage: ${{ variables.linuxImage }}
|
|
|
|
|
|
|
|
|
|
timeoutInMinutes: 10
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
steps:
|
|
|
|
|
- task: UseDotNet@2
|
|
|
|
|
displayName: 'Install .net core'
|
|
|
|
@ -608,12 +608,12 @@ stages:
|
|
|
|
|
Radarr__Postgres__Port: '5432'
|
|
|
|
|
Radarr__Postgres__User: 'radarr'
|
|
|
|
|
Radarr__Postgres__Password: 'radarr'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
pool:
|
|
|
|
|
vmImage: ${{ variables.linuxImage }}
|
|
|
|
|
|
|
|
|
|
timeoutInMinutes: 10
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
steps:
|
|
|
|
|
- task: UseDotNet@2
|
|
|
|
|
displayName: 'Install .net core'
|
|
|
|
@ -695,7 +695,7 @@ stages:
|
|
|
|
|
|
|
|
|
|
pool:
|
|
|
|
|
vmImage: $(imageName)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
steps:
|
|
|
|
|
- task: UseDotNet@2
|
|
|
|
|
displayName: 'Install .net core'
|
|
|
|
@ -717,7 +717,7 @@ stages:
|
|
|
|
|
targetPath: $(Build.ArtifactStagingDirectory)
|
|
|
|
|
- task: ExtractFiles@1
|
|
|
|
|
inputs:
|
|
|
|
|
archiveFilePatterns: '$(Build.ArtifactStagingDirectory)/**/$(pattern)'
|
|
|
|
|
archiveFilePatterns: '$(Build.ArtifactStagingDirectory)/**/$(pattern)'
|
|
|
|
|
destinationFolder: '$(Build.ArtifactStagingDirectory)/bin'
|
|
|
|
|
displayName: Extract Package
|
|
|
|
|
- bash: |
|
|
|
|
@ -771,7 +771,7 @@ stages:
|
|
|
|
|
targetPath: $(Build.ArtifactStagingDirectory)
|
|
|
|
|
- task: ExtractFiles@1
|
|
|
|
|
inputs:
|
|
|
|
|
archiveFilePatterns: '$(Build.ArtifactStagingDirectory)/**/$(pattern)'
|
|
|
|
|
archiveFilePatterns: '$(Build.ArtifactStagingDirectory)/**/$(pattern)'
|
|
|
|
|
destinationFolder: '$(Build.ArtifactStagingDirectory)/bin'
|
|
|
|
|
displayName: Extract Package
|
|
|
|
|
- bash: |
|
|
|
|
@ -834,7 +834,7 @@ stages:
|
|
|
|
|
targetPath: $(Build.ArtifactStagingDirectory)
|
|
|
|
|
- task: ExtractFiles@1
|
|
|
|
|
inputs:
|
|
|
|
|
archiveFilePatterns: '$(Build.ArtifactStagingDirectory)/**/$(pattern)'
|
|
|
|
|
archiveFilePatterns: '$(Build.ArtifactStagingDirectory)/**/$(pattern)'
|
|
|
|
|
destinationFolder: '$(Build.ArtifactStagingDirectory)/bin'
|
|
|
|
|
displayName: Extract Package
|
|
|
|
|
- bash: |
|
|
|
|
@ -929,7 +929,7 @@ stages:
|
|
|
|
|
container: $[ variables['containerImage'] ]
|
|
|
|
|
|
|
|
|
|
timeoutInMinutes: 15
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
steps:
|
|
|
|
|
- task: UseDotNet@2
|
|
|
|
|
displayName: 'Install .NET'
|
|
|
|
@ -957,7 +957,7 @@ stages:
|
|
|
|
|
targetPath: $(Build.ArtifactStagingDirectory)
|
|
|
|
|
- task: ExtractFiles@1
|
|
|
|
|
inputs:
|
|
|
|
|
archiveFilePatterns: '$(Build.ArtifactStagingDirectory)/**/$(pattern)'
|
|
|
|
|
archiveFilePatterns: '$(Build.ArtifactStagingDirectory)/**/$(pattern)'
|
|
|
|
|
destinationFolder: '$(Build.ArtifactStagingDirectory)/bin'
|
|
|
|
|
displayName: Extract Package
|
|
|
|
|
- bash: |
|
|
|
|
@ -979,7 +979,7 @@ stages:
|
|
|
|
|
- stage: Automation
|
|
|
|
|
displayName: Automation
|
|
|
|
|
dependsOn: Packages
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
|
- job: Automation
|
|
|
|
|
strategy:
|
|
|
|
@ -1005,7 +1005,7 @@ stages:
|
|
|
|
|
|
|
|
|
|
pool:
|
|
|
|
|
vmImage: $(imageName)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
steps:
|
|
|
|
|
- task: UseDotNet@2
|
|
|
|
|
displayName: 'Install .net core'
|
|
|
|
@ -1027,7 +1027,7 @@ stages:
|
|
|
|
|
targetPath: $(Build.ArtifactStagingDirectory)
|
|
|
|
|
- task: ExtractFiles@1
|
|
|
|
|
inputs:
|
|
|
|
|
archiveFilePatterns: '$(Build.ArtifactStagingDirectory)/**/$(pattern)'
|
|
|
|
|
archiveFilePatterns: '$(Build.ArtifactStagingDirectory)/**/$(pattern)'
|
|
|
|
|
destinationFolder: '$(Build.ArtifactStagingDirectory)/bin'
|
|
|
|
|
displayName: Extract Package
|
|
|
|
|
- bash: |
|
|
|
|
@ -1151,7 +1151,7 @@ stages:
|
|
|
|
|
- checkout: self
|
|
|
|
|
submodules: true
|
|
|
|
|
persistCredentials: true
|
|
|
|
|
fetchDepth: 1
|
|
|
|
|
fetchDepth: 1
|
|
|
|
|
- bash: ./docs.sh Windows
|
|
|
|
|
displayName: Create openapi.json
|
|
|
|
|
- bash: |
|
|
|
|
@ -1220,8 +1220,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@3
|
|
|
|
|
condition: eq(variables['System.PullRequest.IsFork'], 'False')
|
|
|
|
@ -1264,4 +1264,3 @@ stages:
|
|
|
|
|
DISCORDCHANNELID: $(discordChannelId)
|
|
|
|
|
DISCORDWEBHOOKKEY: $(discordWebhookKey)
|
|
|
|
|
DISCORDTHREADID: $(discordThreadId)
|
|
|
|
|
|
|
|
|
|