ci/cd: cleanup azure pipelines (#13874)

This commit is contained in:
Diego Heras 2023-01-07 21:34:39 +01:00 committed by GitHub
parent 92c711eb19
commit 761ec2b7f6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 51 additions and 49 deletions

View File

@ -26,7 +26,7 @@ stages:
jobs: jobs:
- job: Build - job: Build
workspace: workspace:
clean: outputs clean: all
strategy: strategy:
matrix: matrix:
Windows: Windows:
@ -104,8 +104,6 @@ stages:
displayName: ${{ variables.buildDescription }} displayName: ${{ variables.buildDescription }}
steps: steps:
- checkout: self - checkout: self
clean: false
path: '$(framework)-$(runtime)'
- task: UseDotNet@2 - task: UseDotNet@2
displayName: Install .NET Core SDK displayName: Install .NET Core SDK
@ -114,15 +112,29 @@ stages:
version: $(netCoreSdkVersion) version: $(netCoreSdkVersion)
installationPath: $(Agent.ToolsDirectory)/dotnet installationPath: $(Agent.ToolsDirectory)/dotnet
- task: DotNetCoreCLI@2
displayName: Build DateTimeRoutines
# this task is not mandatory since DateTimeRoutines is build in the next task, but the purpose is to fix:
# error MSB4018: System.IO.IOException: The process cannot access the file
# '/home/vsts/work/1/net6.0-linux-musl-arm/src/DateTimeRoutines/bin/Release/netstandard2.0/DateTimeRoutines.deps.json'
# because it is being used by another process.
inputs:
command: build
projects: 'src/DateTimeRoutines/DateTimeRoutines.csproj'
publishWebProjects: false
zipAfterPublish: false
arguments: '--configuration $(buildConfiguration) --runtime $(runtime) --framework netstandard2.0'
- task: DotNetCoreCLI@2 - task: DotNetCoreCLI@2
displayName: Build Jackett Server displayName: Build Jackett Server
retryCountOnTaskFailure: 2 # the retries are just in case the previous task doesn't fix the error
retryCountOnTaskFailure: 3
inputs: inputs:
command: publish command: publish
projects: 'src/Jackett.Server/Jackett.Server.csproj' projects: 'src/Jackett.Server/Jackett.Server.csproj'
publishWebProjects: false publishWebProjects: false
zipAfterPublish: false zipAfterPublish: false
arguments: '--configuration $(buildConfiguration) --runtime $(runtime) --framework $(framework) --self-contained --output $(Build.BinariesDirectory)/$(framework)-$(runtime) /p:AssemblyVersion=$(jackettVersion) /p:FileVersion=$(jackettVersion) /p:InformationalVersion=$(jackettVersion) /p:Version=$(jackettVersion)' arguments: '--configuration $(buildConfiguration) --runtime $(runtime) --framework $(framework) --self-contained --output $(Build.BinariesDirectory) /p:AssemblyVersion=$(jackettVersion) /p:FileVersion=$(jackettVersion) /p:InformationalVersion=$(jackettVersion) /p:Version=$(jackettVersion)'
- task: DotNetCoreCLI@2 - task: DotNetCoreCLI@2
displayName: Build Jackett Updater displayName: Build Jackett Updater
@ -131,7 +143,7 @@ stages:
projects: 'src/Jackett.Updater/Jackett.Updater.csproj' projects: 'src/Jackett.Updater/Jackett.Updater.csproj'
publishWebProjects: false publishWebProjects: false
zipAfterPublish: false zipAfterPublish: false
arguments: '--configuration $(buildConfiguration) --runtime $(runtime) --framework $(framework) --self-contained --output $(Build.BinariesDirectory)/$(framework)-$(runtime) /p:AssemblyVersion=$(jackettVersion) /p:FileVersion=$(jackettVersion) /p:InformationalVersion=$(jackettVersion) /p:Version=$(jackettVersion)' arguments: '--configuration $(buildConfiguration) --runtime $(runtime) --framework $(framework) --self-contained --output $(Build.BinariesDirectory) /p:AssemblyVersion=$(jackettVersion) /p:FileVersion=$(jackettVersion) /p:InformationalVersion=$(jackettVersion) /p:Version=$(jackettVersion)'
- task: DotNetCoreCLI@2 - task: DotNetCoreCLI@2
displayName: Build Jackett Tray (Windows only) displayName: Build Jackett Tray (Windows only)
@ -141,7 +153,7 @@ stages:
projects: 'src/Jackett.Tray/Jackett.Tray.csproj' projects: 'src/Jackett.Tray/Jackett.Tray.csproj'
publishWebProjects: false publishWebProjects: false
zipAfterPublish: false zipAfterPublish: false
arguments: '--configuration $(buildConfiguration) --runtime $(runtime) --framework $(framework)-windows --self-contained --output $(Build.BinariesDirectory)/$(framework)-$(runtime) /p:AssemblyVersion=$(jackettVersion) /p:FileVersion=$(jackettVersion) /p:InformationalVersion=$(jackettVersion) /p:Version=$(jackettVersion)' arguments: '--configuration $(buildConfiguration) --runtime $(runtime) --framework $(framework)-windows --self-contained --output $(Build.BinariesDirectory) /p:AssemblyVersion=$(jackettVersion) /p:FileVersion=$(jackettVersion) /p:InformationalVersion=$(jackettVersion) /p:Version=$(jackettVersion)'
- task: DotNetCoreCLI@2 - task: DotNetCoreCLI@2
displayName: Build Jackett Service (Windows only) displayName: Build Jackett Service (Windows only)
@ -151,50 +163,50 @@ stages:
projects: 'src/Jackett.Service/Jackett.Service.csproj' projects: 'src/Jackett.Service/Jackett.Service.csproj'
publishWebProjects: false publishWebProjects: false
zipAfterPublish: false zipAfterPublish: false
arguments: '--configuration $(buildConfiguration) --runtime $(runtime) --framework $(framework)-windows --self-contained --output $(Build.BinariesDirectory)/$(framework)-$(runtime) /p:AssemblyVersion=$(jackettVersion) /p:FileVersion=$(jackettVersion) /p:InformationalVersion=$(jackettVersion) /p:Version=$(jackettVersion)' arguments: '--configuration $(buildConfiguration) --runtime $(runtime) --framework $(framework)-windows --self-contained --output $(Build.BinariesDirectory) /p:AssemblyVersion=$(jackettVersion) /p:FileVersion=$(jackettVersion) /p:InformationalVersion=$(jackettVersion) /p:Version=$(jackettVersion)'
- task: CopyFiles@2 - task: CopyFiles@2
displayName: Copy Jackett Server displayName: Copy Jackett Server
inputs: inputs:
SourceFolder: $(Build.BinariesDirectory)/$(framework)-$(runtime)/Jackett.Server SourceFolder: $(Build.BinariesDirectory)/Jackett.Server
contents: '**' contents: '**'
targetFolder: $(Build.BinariesDirectory)/$(framework)-$(runtime)/Jackett targetFolder: $(Build.BinariesDirectory)/Jackett
- task: CopyFiles@2 - task: CopyFiles@2
displayName: Copy Jackett Updater displayName: Copy Jackett Updater
inputs: inputs:
SourceFolder: $(Build.BinariesDirectory)/$(framework)-$(runtime)/Jackett.Updater SourceFolder: $(Build.BinariesDirectory)/Jackett.Updater
contents: JackettUpdater* contents: JackettUpdater*
targetFolder: $(Build.BinariesDirectory)/$(framework)-$(runtime)/Jackett targetFolder: $(Build.BinariesDirectory)/Jackett
- task: CopyFiles@2 - task: CopyFiles@2
displayName: Copy Jackett Tray (Windows only) displayName: Copy Jackett Tray (Windows only)
condition: and(succeeded(), startsWith(variables['runtime'], 'win')) condition: and(succeeded(), startsWith(variables['runtime'], 'win'))
inputs: inputs:
SourceFolder: $(Build.BinariesDirectory)/$(framework)-$(runtime)/Jackett.Tray SourceFolder: $(Build.BinariesDirectory)/Jackett.Tray
contents: | contents: |
System.Drawing.dll System.Drawing.dll
System.Security.Cryptography.ProtectedData.dll System.Security.Cryptography.ProtectedData.dll
WindowsBase.dll WindowsBase.dll
targetFolder: $(Build.BinariesDirectory)/$(framework)-$(runtime)/Jackett targetFolder: $(Build.BinariesDirectory)/Jackett
overWrite: true overWrite: true
- task: CopyFiles@2 - task: CopyFiles@2
displayName: Copy Jackett Tray Part 2 (Windows only) displayName: Copy Jackett Tray Part 2 (Windows only)
condition: and(succeeded(), startsWith(variables['runtime'], 'win')) condition: and(succeeded(), startsWith(variables['runtime'], 'win'))
inputs: inputs:
SourceFolder: $(Build.BinariesDirectory)/$(framework)-$(runtime)/Jackett.Tray SourceFolder: $(Build.BinariesDirectory)/Jackett.Tray
contents: '*' contents: '*'
targetFolder: $(Build.BinariesDirectory)/$(framework)-$(runtime)/Jackett targetFolder: $(Build.BinariesDirectory)/Jackett
overWrite: false overWrite: false
- task: CopyFiles@2 - task: CopyFiles@2
displayName: Copy Jackett Service (Windows only) displayName: Copy Jackett Service (Windows only)
condition: and(succeeded(), startsWith(variables['runtime'], 'win')) condition: and(succeeded(), startsWith(variables['runtime'], 'win'))
inputs: inputs:
SourceFolder: $(Build.BinariesDirectory)/$(framework)-$(runtime)/Jackett.Service SourceFolder: $(Build.BinariesDirectory)/Jackett.Service
contents: JackettService* contents: JackettService*
targetFolder: $(Build.BinariesDirectory)/$(framework)-$(runtime)/Jackett targetFolder: $(Build.BinariesDirectory)/Jackett
- task: CopyFiles@2 - task: CopyFiles@2
displayName: Copy Windows Specific Scripts (Windows only) displayName: Copy Windows Specific Scripts (Windows only)
@ -202,7 +214,7 @@ stages:
inputs: inputs:
SourceFolder: $(Build.SourcesDirectory) SourceFolder: $(Build.SourcesDirectory)
contents: jackett_launcher.bat contents: jackett_launcher.bat
targetFolder: $(Build.BinariesDirectory)/$(framework)-$(runtime)/Jackett targetFolder: $(Build.BinariesDirectory)/Jackett
- task: CopyFiles@2 - task: CopyFiles@2
displayName: Copy Mono Specific Scripts displayName: Copy Mono Specific Scripts
@ -212,7 +224,7 @@ stages:
contents: | contents: |
install_service_systemd_mono.sh install_service_systemd_mono.sh
Upstart.config Upstart.config
targetFolder: $(Build.BinariesDirectory)/$(framework)-$(runtime)/Jackett targetFolder: $(Build.BinariesDirectory)/Jackett
- task: CopyFiles@2 - task: CopyFiles@2
displayName: Copy macOS Specific Scripts displayName: Copy macOS Specific Scripts
@ -222,7 +234,7 @@ stages:
contents: | contents: |
install_service_macos install_service_macos
uninstall_jackett_macos uninstall_jackett_macos
targetFolder: $(Build.BinariesDirectory)/$(framework)-$(runtime)/Jackett targetFolder: $(Build.BinariesDirectory)/Jackett
- task: CopyFiles@2 - task: CopyFiles@2
displayName: Copy Linux Specific Scripts displayName: Copy Linux Specific Scripts
@ -232,7 +244,7 @@ stages:
contents: | contents: |
install_service_systemd.sh install_service_systemd.sh
jackett_launcher.sh jackett_launcher.sh
targetFolder: $(Build.BinariesDirectory)/$(framework)-$(runtime)/Jackett targetFolder: $(Build.BinariesDirectory)/Jackett
# There is an issue with Mono 5.8 (fixed in Mono 5.12) where its expecting to use its own patched version of # There is an issue with Mono 5.8 (fixed in Mono 5.12) where its expecting to use its own patched version of
# System.Net.Http.dll, instead of the version supplied in folder # System.Net.Http.dll, instead of the version supplied in folder
@ -246,26 +258,26 @@ stages:
displayName: Patch Mono Build (Mono only) displayName: Patch Mono Build (Mono only)
condition: and(succeeded(), startsWith(variables['buildDescription'], 'Mono')) condition: and(succeeded(), startsWith(variables['buildDescription'], 'Mono'))
inputs: inputs:
workingDirectory: $(Build.BinariesDirectory)/$(framework)-$(runtime)/Jackett workingDirectory: $(Build.BinariesDirectory)/Jackett
targetType: inline targetType: inline
script: | script: |
$file = '$(Build.BinariesDirectory)/$(framework)-$(runtime)/Jackett/JackettConsole.exe.config' $file = '$(Build.BinariesDirectory)/Jackett/JackettConsole.exe.config'
$xml = [xml] (Get-Content $file) $xml = [xml] (Get-Content $file)
$newVersion = $xml.SelectSingleNode("configuration/runtime/*[name()='assemblyBinding']/*[name()='dependentAssembly']/*[name()='assemblyIdentity'][@name='System.Net.Http']/../*[name()='bindingRedirect']/@newVersion") $newVersion = $xml.SelectSingleNode("configuration/runtime/*[name()='assemblyBinding']/*[name()='dependentAssembly']/*[name()='assemblyIdentity'][@name='System.Net.Http']/../*[name()='bindingRedirect']/@newVersion")
$newVersion.Value = '4.0.0.0' $newVersion.Value = '4.0.0.0'
$xml.Save($file) $xml.Save($file)
Remove-Item '$(Build.BinariesDirectory)/$(framework)-$(runtime)/Jackett/System.Net.Http.dll' Remove-Item '$(Build.BinariesDirectory)/Jackett/System.Net.Http.dll'
Remove-Item '$(Build.BinariesDirectory)/$(framework)-$(runtime)/Jackett/System.Runtime.InteropServices.RuntimeInformation.dll' Remove-Item '$(Build.BinariesDirectory)/Jackett/System.Runtime.InteropServices.RuntimeInformation.dll'
- task: Bash@3 - task: Bash@3
displayName: Set Folder and File Permissions (Mono, Linux and macOS) displayName: Set Folder and File Permissions (Mono, Linux and macOS)
condition: and(succeeded(), not(startsWith(variables['runtime'], 'win'))) condition: and(succeeded(), not(startsWith(variables['runtime'], 'win')))
inputs: inputs:
workingDirectory: $(Build.BinariesDirectory)/$(framework)-$(runtime)/Jackett workingDirectory: $(Build.BinariesDirectory)/Jackett
targetType: inline targetType: inline
script: | script: |
chmod 755 $(find "$(Build.BinariesDirectory)/$(framework)-$(runtime)"/Jackett -type d) chmod 755 $(find "$(Build.BinariesDirectory)"/Jackett -type d)
chmod 644 $(find "$(Build.BinariesDirectory)/$(framework)-$(runtime)"/Jackett -type f) chmod 644 $(find "$(Build.BinariesDirectory)"/Jackett -type f)
chmod 755 jackett chmod 755 jackett
chmod 755 JackettUpdater chmod 755 JackettUpdater
if [ -f install_service_systemd_mono.sh ]; then chmod 755 install_service_systemd_mono.sh; fi if [ -f install_service_systemd_mono.sh ]; then chmod 755 install_service_systemd_mono.sh; fi
@ -277,7 +289,7 @@ stages:
- task: ArchiveFiles@2 - task: ArchiveFiles@2
displayName: Compress Binaries displayName: Compress Binaries
inputs: inputs:
rootFolderOrFile: $(Build.BinariesDirectory)/$(framework)-$(runtime)/Jackett rootFolderOrFile: $(Build.BinariesDirectory)/Jackett
includeRootFolder: true includeRootFolder: true
archiveType: '$(archiveType)' archiveType: '$(archiveType)'
tarCompression: gz tarCompression: gz
@ -291,7 +303,7 @@ stages:
iscc.exe $(Build.SourcesDirectory)/Installer.iss iscc.exe $(Build.SourcesDirectory)/Installer.iss
/O"$(Build.ArtifactStagingDirectory)" /O"$(Build.ArtifactStagingDirectory)"
/DMyAppVersion=$(jackettVersion) /DMyAppVersion=$(jackettVersion)
/DMySourceFolder=$(Build.BinariesDirectory)/$(framework)-$(runtime)/Jackett /DMySourceFolder=$(Build.BinariesDirectory)/Jackett
/DMyOutputFilename=Jackett.Installer.Windows /DMyOutputFilename=Jackett.Installer.Windows
- task: PublishBuildArtifacts@1 - task: PublishBuildArtifacts@1
@ -307,11 +319,9 @@ stages:
pool: pool:
vmImage: ubuntu-22.04 vmImage: ubuntu-22.04
workspace: workspace:
clean: outputs clean: all
steps: steps:
- checkout: self - checkout: self
clean: false
path: lint-dotnet
- task: UseDotNet@2 - task: UseDotNet@2
displayName: Install .NET Core SDK displayName: Install .NET Core SDK
@ -342,11 +352,9 @@ stages:
pool: pool:
vmImage: ubuntu-22.04 vmImage: ubuntu-22.04
workspace: workspace:
clean: outputs clean: all
steps: steps:
- checkout: self - checkout: self
clean: false
path: lint-yaml
- task: UsePythonVersion@0 - task: UsePythonVersion@0
displayName: Install Python displayName: Install Python
@ -364,11 +372,9 @@ stages:
pool: pool:
vmImage: ubuntu-22.04 vmImage: ubuntu-22.04
workspace: workspace:
clean: outputs clean: all
steps: steps:
- checkout: self - checkout: self
clean: false
path: validate-yaml
- task: Bash@3 - task: Bash@3
displayName: Validate YAML Schema displayName: Validate YAML Schema
@ -398,7 +404,7 @@ stages:
jobs: jobs:
- job: UnitTest - job: UnitTest
workspace: workspace:
clean: outputs clean: all
strategy: strategy:
matrix: matrix:
Windows: Windows:
@ -426,8 +432,6 @@ stages:
displayName: ${{ variables.buildDescription }} displayName: ${{ variables.buildDescription }}
steps: steps:
- checkout: self - checkout: self
clean: false
path: '$(framework)-$(runtime)'
- task: UseDotNet@2 - task: UseDotNet@2
displayName: Install .NET Core SDK displayName: Install .NET Core SDK
@ -444,6 +448,7 @@ stages:
command: restore command: restore
projects: '**/*.Test*/*.csproj' projects: '**/*.Test*/*.csproj'
includeNuGetOrg: true includeNuGetOrg: true
restoreArguments: '--runtime $(runtime)'
- task: DotNetCoreCLI@2 - task: DotNetCoreCLI@2
displayName: Unit Tests (Mono, Linux and macOS) displayName: Unit Tests (Mono, Linux and macOS)
@ -493,7 +498,7 @@ stages:
jobs: jobs:
- job: IntegrationTest - job: IntegrationTest
workspace: workspace:
clean: outputs clean: all
strategy: strategy:
matrix: matrix:
Windows: Windows:
@ -525,8 +530,6 @@ stages:
displayName: ${{ variables.buildDescription }} displayName: ${{ variables.buildDescription }}
steps: steps:
- checkout: self - checkout: self
clean: false
path: '$(framework)-$(runtime)'
- task: DownloadBuildArtifacts@0 - task: DownloadBuildArtifacts@0
displayName: Download artifacts for integration tests displayName: Download artifacts for integration tests
@ -571,6 +574,7 @@ stages:
command: restore command: restore
projects: '**/*IntegrationTest*/*.csproj' projects: '**/*IntegrationTest*/*.csproj'
includeNuGetOrg: true includeNuGetOrg: true
restoreArguments: '--runtime $(runtime)'
- task: DotNetCoreCLI@2 - task: DotNetCoreCLI@2
displayName: Integration Tests (Mono, Linux and macOS) displayName: Integration Tests (Mono, Linux and macOS)
@ -599,13 +603,11 @@ stages:
jobs: jobs:
- job: Publish - job: Publish
workspace: workspace:
clean: outputs clean: all
pool: pool:
vmImage: ubuntu-22.04 vmImage: ubuntu-22.04
steps: steps:
- checkout: self - checkout: self
clean: false
path: publish
- task: DownloadBuildArtifacts@0 - task: DownloadBuildArtifacts@0
displayName: Download Artifacts for Publish displayName: Download Artifacts for Publish