|
|
@ -4,15 +4,14 @@ parameters:
|
|
|
|
DotNetSdkVersion: 3.1.100
|
|
|
|
DotNetSdkVersion: 3.1.100
|
|
|
|
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
jobs:
|
|
|
|
- job: MainBuild
|
|
|
|
- job: Build
|
|
|
|
displayName: Main Build
|
|
|
|
displayName: Build
|
|
|
|
strategy:
|
|
|
|
strategy:
|
|
|
|
matrix:
|
|
|
|
matrix:
|
|
|
|
Release:
|
|
|
|
Release:
|
|
|
|
BuildConfiguration: Release
|
|
|
|
BuildConfiguration: Release
|
|
|
|
Debug:
|
|
|
|
Debug:
|
|
|
|
BuildConfiguration: Debug
|
|
|
|
BuildConfiguration: Debug
|
|
|
|
maxParallel: 2
|
|
|
|
|
|
|
|
pool:
|
|
|
|
pool:
|
|
|
|
vmImage: "${{ parameters.LinuxImage }}"
|
|
|
|
vmImage: "${{ parameters.LinuxImage }}"
|
|
|
|
steps:
|
|
|
|
steps:
|
|
|
@ -22,13 +21,13 @@ jobs:
|
|
|
|
persistCredentials: true
|
|
|
|
persistCredentials: true
|
|
|
|
|
|
|
|
|
|
|
|
- task: CmdLine@2
|
|
|
|
- task: CmdLine@2
|
|
|
|
displayName: "Clone Web Client (Master, Release, or Tag)"
|
|
|
|
displayName: "Clone Web Branch"
|
|
|
|
condition: and(succeeded(), or(contains(variables['Build.SourceBranch'], 'release'), contains(variables['Build.SourceBranch'], 'master')), eq(variables['BuildConfiguration'], 'Release'), in(variables['Build.Reason'], 'IndividualCI', 'BatchedCI', 'BuildCompletion'))
|
|
|
|
condition: and(succeeded(), or(contains(variables['Build.SourceBranch'], 'release'), contains(variables['Build.SourceBranch'], 'master')), eq(variables['BuildConfiguration'], 'Release'), in(variables['Build.Reason'], 'IndividualCI', 'BatchedCI', 'BuildCompletion'))
|
|
|
|
inputs:
|
|
|
|
inputs:
|
|
|
|
script: "git clone --single-branch --branch $(Build.SourceBranchName) --depth=1 https://github.com/jellyfin/jellyfin-web.git $(Agent.TempDirectory)/jellyfin-web"
|
|
|
|
script: "git clone --single-branch --branch $(Build.SourceBranchName) --depth=1 https://github.com/jellyfin/jellyfin-web.git $(Agent.TempDirectory)/jellyfin-web"
|
|
|
|
|
|
|
|
|
|
|
|
- task: CmdLine@2
|
|
|
|
- task: CmdLine@2
|
|
|
|
displayName: "Clone Web Client (PR)"
|
|
|
|
displayName: "Clone Web Target"
|
|
|
|
condition: and(succeeded(), or(contains(variables['System.PullRequest.TargetBranch'], 'release'), contains(variables['System.PullRequest.TargetBranch'], 'master')), eq(variables['BuildConfiguration'], 'Release'), in(variables['Build.Reason'], 'PullRequest'))
|
|
|
|
condition: and(succeeded(), or(contains(variables['System.PullRequest.TargetBranch'], 'release'), contains(variables['System.PullRequest.TargetBranch'], 'master')), eq(variables['BuildConfiguration'], 'Release'), in(variables['Build.Reason'], 'PullRequest'))
|
|
|
|
inputs:
|
|
|
|
inputs:
|
|
|
|
script: "git clone --single-branch --branch $(System.PullRequest.TargetBranch) --depth 1 https://github.com/jellyfin/jellyfin-web.git $(Agent.TempDirectory)/jellyfin-web"
|
|
|
|
script: "git clone --single-branch --branch $(System.PullRequest.TargetBranch) --depth 1 https://github.com/jellyfin/jellyfin-web.git $(Agent.TempDirectory)/jellyfin-web"
|
|
|
@ -37,7 +36,7 @@ jobs:
|
|
|
|
displayName: "Install Node"
|
|
|
|
displayName: "Install Node"
|
|
|
|
condition: and(succeeded(), or(contains(variables['System.PullRequest.TargetBranch'], 'release'), contains(variables['System.PullRequest.TargetBranch'], 'master'), contains(variables['Build.SourceBranch'], 'release'), contains(variables['Build.SourceBranch'], 'master')), eq(variables['BuildConfiguration'], 'Release'), in(variables['Build.Reason'], 'PullRequest', 'IndividualCI', 'BatchedCI', 'BuildCompletion'))
|
|
|
|
condition: and(succeeded(), or(contains(variables['System.PullRequest.TargetBranch'], 'release'), contains(variables['System.PullRequest.TargetBranch'], 'master'), contains(variables['Build.SourceBranch'], 'release'), contains(variables['Build.SourceBranch'], 'master')), eq(variables['BuildConfiguration'], 'Release'), in(variables['Build.Reason'], 'PullRequest', 'IndividualCI', 'BatchedCI', 'BuildCompletion'))
|
|
|
|
inputs:
|
|
|
|
inputs:
|
|
|
|
versionSpec: "10.x"
|
|
|
|
versionSpec: "12.x"
|
|
|
|
|
|
|
|
|
|
|
|
- task: CmdLine@2
|
|
|
|
- task: CmdLine@2
|
|
|
|
displayName: "Build Web Client"
|
|
|
|
displayName: "Build Web Client"
|
|
|
@ -69,33 +68,33 @@ jobs:
|
|
|
|
command: publish
|
|
|
|
command: publish
|
|
|
|
publishWebProjects: false
|
|
|
|
publishWebProjects: false
|
|
|
|
projects: "${{ parameters.RestoreBuildProjects }}"
|
|
|
|
projects: "${{ parameters.RestoreBuildProjects }}"
|
|
|
|
arguments: "--configuration $(BuildConfiguration) --output $(build.artifactstagingdirectory)"
|
|
|
|
arguments: "--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)"
|
|
|
|
zipAfterPublish: false
|
|
|
|
zipAfterPublish: false
|
|
|
|
|
|
|
|
|
|
|
|
- task: PublishPipelineArtifact@0
|
|
|
|
- task: PublishPipelineArtifact@0
|
|
|
|
displayName: "Publish Artifact Naming"
|
|
|
|
displayName: "Publish Artifact Naming"
|
|
|
|
condition: and(succeeded(), eq(variables['BuildConfiguration'], 'Release'))
|
|
|
|
condition: and(succeeded(), eq(variables['BuildConfiguration'], 'Release'))
|
|
|
|
inputs:
|
|
|
|
inputs:
|
|
|
|
targetPath: "$(build.artifactstagingdirectory)/Jellyfin.Server/Emby.Naming.dll"
|
|
|
|
targetPath: "$(build.ArtifactStagingDirectory)/Jellyfin.Server/Emby.Naming.dll"
|
|
|
|
artifactName: "Jellyfin.Naming"
|
|
|
|
artifactName: "Jellyfin.Naming"
|
|
|
|
|
|
|
|
|
|
|
|
- task: PublishPipelineArtifact@0
|
|
|
|
- task: PublishPipelineArtifact@0
|
|
|
|
displayName: "Publish Artifact Controller"
|
|
|
|
displayName: "Publish Artifact Controller"
|
|
|
|
condition: and(succeeded(), eq(variables['BuildConfiguration'], 'Release'))
|
|
|
|
condition: and(succeeded(), eq(variables['BuildConfiguration'], 'Release'))
|
|
|
|
inputs:
|
|
|
|
inputs:
|
|
|
|
targetPath: "$(build.artifactstagingdirectory)/Jellyfin.Server/MediaBrowser.Controller.dll"
|
|
|
|
targetPath: "$(build.ArtifactStagingDirectory)/Jellyfin.Server/MediaBrowser.Controller.dll"
|
|
|
|
artifactName: "Jellyfin.Controller"
|
|
|
|
artifactName: "Jellyfin.Controller"
|
|
|
|
|
|
|
|
|
|
|
|
- task: PublishPipelineArtifact@0
|
|
|
|
- task: PublishPipelineArtifact@0
|
|
|
|
displayName: "Publish Artifact Model"
|
|
|
|
displayName: "Publish Artifact Model"
|
|
|
|
condition: and(succeeded(), eq(variables['BuildConfiguration'], 'Release'))
|
|
|
|
condition: and(succeeded(), eq(variables['BuildConfiguration'], 'Release'))
|
|
|
|
inputs:
|
|
|
|
inputs:
|
|
|
|
targetPath: "$(build.artifactstagingdirectory)/Jellyfin.Server/MediaBrowser.Model.dll"
|
|
|
|
targetPath: "$(build.ArtifactStagingDirectory)/Jellyfin.Server/MediaBrowser.Model.dll"
|
|
|
|
artifactName: "Jellyfin.Model"
|
|
|
|
artifactName: "Jellyfin.Model"
|
|
|
|
|
|
|
|
|
|
|
|
- task: PublishPipelineArtifact@0
|
|
|
|
- task: PublishPipelineArtifact@0
|
|
|
|
displayName: "Publish Artifact Common"
|
|
|
|
displayName: "Publish Artifact Common"
|
|
|
|
condition: and(succeeded(), eq(variables['BuildConfiguration'], 'Release'))
|
|
|
|
condition: and(succeeded(), eq(variables['BuildConfiguration'], 'Release'))
|
|
|
|
inputs:
|
|
|
|
inputs:
|
|
|
|
targetPath: "$(build.artifactstagingdirectory)/Jellyfin.Server/MediaBrowser.Common.dll"
|
|
|
|
targetPath: "$(build.ArtifactStagingDirectory)/Jellyfin.Server/MediaBrowser.Common.dll"
|
|
|
|
artifactName: "Jellyfin.Common"
|
|
|
|
artifactName: "Jellyfin.Common"
|
|
|
|