|
|
|
@ -15,7 +15,7 @@ variables:
|
|
|
|
|
buildName: '$(Build.SourceBranchName).$(prowlarrVersion)'
|
|
|
|
|
sentryOrg: 'servarr'
|
|
|
|
|
sentryUrl: 'https://sentry.servarr.com'
|
|
|
|
|
dotnetVersion: '6.0.424'
|
|
|
|
|
dotnetVersion: '8.0.303'
|
|
|
|
|
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
|
|
|
|
@ -259,21 +259,21 @@ stages:
|
|
|
|
|
archiveFile: '$(Build.ArtifactStagingDirectory)/Prowlarr.$(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)/Prowlarr.$(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)/Prowlarr.$(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:
|
|
|
|
@ -281,14 +281,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)/Prowlarr.$(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:
|
|
|
|
@ -296,7 +296,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:
|
|
|
|
@ -304,7 +304,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:
|
|
|
|
@ -312,7 +312,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:
|
|
|
|
@ -320,7 +320,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:
|
|
|
|
@ -328,7 +328,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:
|
|
|
|
@ -336,7 +336,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:
|
|
|
|
@ -344,7 +344,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:
|
|
|
|
@ -352,7 +352,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:
|
|
|
|
@ -360,7 +360,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
|
|
|
|
@ -391,7 +391,7 @@ stages:
|
|
|
|
|
SENTRY_AUTH_TOKEN: $(sentryAuthTokenServarr)
|
|
|
|
|
SENTRY_ORG: $(sentryOrg)
|
|
|
|
|
SENTRY_URL: $(sentryUrl)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- stage: Unit_Test
|
|
|
|
|
displayName: Unit Tests
|
|
|
|
|
dependsOn: Build_Backend
|
|
|
|
@ -494,11 +494,11 @@ stages:
|
|
|
|
|
|
|
|
|
|
pool:
|
|
|
|
|
vmImage: ${{ variables.linuxImage }}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
container: $[ variables['containerImage'] ]
|
|
|
|
|
|
|
|
|
|
timeoutInMinutes: 10
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
steps:
|
|
|
|
|
- task: UseDotNet@2
|
|
|
|
|
displayName: 'Install .NET'
|
|
|
|
@ -532,7 +532,7 @@ stages:
|
|
|
|
|
testResultsFiles: '**/TestResult.xml'
|
|
|
|
|
testRunTitle: '$(testName) Unit Tests'
|
|
|
|
|
failTaskOnFailedTests: true
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- job: Unit_LinuxCore_Postgres14
|
|
|
|
|
displayName: Unit Native LinuxCore with Postgres14 Database
|
|
|
|
|
dependsOn: Prepare
|
|
|
|
@ -549,7 +549,7 @@ stages:
|
|
|
|
|
vmImage: ${{ variables.linuxImage }}
|
|
|
|
|
|
|
|
|
|
timeoutInMinutes: 10
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
steps:
|
|
|
|
|
- task: UseDotNet@2
|
|
|
|
|
displayName: 'Install .net core'
|
|
|
|
@ -597,12 +597,12 @@ stages:
|
|
|
|
|
Prowlarr__Postgres__Port: '5432'
|
|
|
|
|
Prowlarr__Postgres__User: 'prowlarr'
|
|
|
|
|
Prowlarr__Postgres__Password: 'prowlarr'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
pool:
|
|
|
|
|
vmImage: ${{ variables.linuxImage }}
|
|
|
|
|
|
|
|
|
|
timeoutInMinutes: 10
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
steps:
|
|
|
|
|
- task: UseDotNet@2
|
|
|
|
|
displayName: 'Install .net core'
|
|
|
|
@ -681,7 +681,7 @@ stages:
|
|
|
|
|
|
|
|
|
|
pool:
|
|
|
|
|
vmImage: $(imageName)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
steps:
|
|
|
|
|
- task: UseDotNet@2
|
|
|
|
|
displayName: 'Install .net core'
|
|
|
|
@ -703,7 +703,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: |
|
|
|
|
@ -757,7 +757,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: |
|
|
|
|
@ -820,7 +820,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: |
|
|
|
|
@ -915,7 +915,7 @@ stages:
|
|
|
|
|
container: $[ variables['containerImage'] ]
|
|
|
|
|
|
|
|
|
|
timeoutInMinutes: 15
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
steps:
|
|
|
|
|
- task: UseDotNet@2
|
|
|
|
|
displayName: 'Install .NET'
|
|
|
|
@ -943,7 +943,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: |
|
|
|
|
@ -965,7 +965,7 @@ stages:
|
|
|
|
|
- stage: Automation
|
|
|
|
|
displayName: Automation
|
|
|
|
|
dependsOn: Packages
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
|
- job: Automation
|
|
|
|
|
strategy:
|
|
|
|
@ -991,7 +991,7 @@ stages:
|
|
|
|
|
|
|
|
|
|
pool:
|
|
|
|
|
vmImage: $(imageName)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
steps:
|
|
|
|
|
- task: UseDotNet@2
|
|
|
|
|
displayName: 'Install .net core'
|
|
|
|
@ -1013,7 +1013,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: |
|
|
|
|
@ -1116,7 +1116,7 @@ stages:
|
|
|
|
|
- checkout: self
|
|
|
|
|
submodules: true
|
|
|
|
|
persistCredentials: true
|
|
|
|
|
fetchDepth: 1
|
|
|
|
|
fetchDepth: 1
|
|
|
|
|
- bash: ./docs.sh Windows
|
|
|
|
|
displayName: Create openapi.json
|
|
|
|
|
- bash: |
|
|
|
|
@ -1184,8 +1184,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@2
|
|
|
|
|
condition: eq(variables['System.PullRequest.IsFork'], 'False')
|
|
|
|
@ -1228,4 +1228,3 @@ stages:
|
|
|
|
|
DISCORDCHANNELID: $(discordChannelId)
|
|
|
|
|
DISCORDWEBHOOKKEY: $(discordWebhookKey)
|
|
|
|
|
DISCORDTHREADID: $(discordThreadId)
|
|
|
|
|
|
|
|
|
|