aboutsummaryrefslogtreecommitdiff
path: root/.ci/azure-pipelines-main.yml
blob: b7112ba2456c3ca2bb5f1b609c6d9f307b90eaf8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
parameters:
  LinuxImage: 'ubuntu-latest'
  RestoreBuildProjects: 'Jellyfin.Server/Jellyfin.Server.csproj'
  DotNetSdkVersion: 6.0.x

jobs:
  - job: Build
    displayName: Build
    strategy:
      matrix:
        Release:
          BuildConfiguration: Release
        Debug:
          BuildConfiguration: Debug
    pool:
      vmImage: '${{ parameters.LinuxImage }}'
    steps:
      - checkout: self
        clean: true
        submodules: true
        persistCredentials: true

      - task: DownloadPipelineArtifact@2
        displayName: 'Download Web Branch'
        condition: in(variables['Build.Reason'], 'IndividualCI', 'BatchedCI', 'BuildCompletion')
        inputs:
          path: '$(Agent.TempDirectory)'
          artifact: 'jellyfin-web-production'
          source: 'specific'
          project: 'jellyfin'
          pipeline: 'Jellyfin Web'
          runBranch: variables['Build.SourceBranch']

      - task: DownloadPipelineArtifact@2
        displayName: 'Download Web Target'
        condition: eq(variables['Build.Reason'], 'PullRequest')
        inputs:
          path: '$(Agent.TempDirectory)'
          artifact: 'jellyfin-web-production'
          source: 'specific'
          project: 'jellyfin'
          pipeline: 'Jellyfin Web'
          runBranch: variables['System.PullRequest.TargetBranch']

      - task: ExtractFiles@1
        displayName: 'Extract Web Client'
        inputs:
          archiveFilePatterns: '$(Agent.TempDirectory)/*.zip'
          destinationFolder: '$(Build.SourcesDirectory)/MediaBrowser.WebDashboard'
          cleanDestinationFolder: false

      - task: UseDotNet@2
        displayName: 'Update DotNet'
        inputs:
          packageType: sdk
          version: ${{ parameters.DotNetSdkVersion }}

      - task: DotNetCoreCLI@2
        displayName: 'Publish Server'
        inputs:
          command: publish
          publishWebProjects: false
          projects: '${{ parameters.RestoreBuildProjects }}'
          arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'
          zipAfterPublish: false

      - task: PublishPipelineArtifact@1
        displayName: 'Publish Artifact Naming'
        condition: and(succeeded(), eq(variables['BuildConfiguration'], 'Release'))
        inputs:
          targetPath: '$(build.ArtifactStagingDirectory)/Jellyfin.Server/Emby.Naming.dll'
          artifactName: 'Jellyfin.Naming'

      - task: PublishPipelineArtifact@1
        displayName: 'Publish Artifact Controller'
        condition: and(succeeded(), eq(variables['BuildConfiguration'], 'Release'))
        inputs:
          targetPath: '$(build.ArtifactStagingDirectory)/Jellyfin.Server/MediaBrowser.Controller.dll'
          artifactName: 'Jellyfin.Controller'

      - task: PublishPipelineArtifact@1
        displayName: 'Publish Artifact Model'
        condition: and(succeeded(), eq(variables['BuildConfiguration'], 'Release'))
        inputs:
          targetPath: '$(build.ArtifactStagingDirectory)/Jellyfin.Server/MediaBrowser.Model.dll'
          artifactName: 'Jellyfin.Model'

      - task: PublishPipelineArtifact@1
        displayName: 'Publish Artifact Common'
        condition: and(succeeded(), eq(variables['BuildConfiguration'], 'Release'))
        inputs:
          targetPath: '$(build.ArtifactStagingDirectory)/Jellyfin.Server/MediaBrowser.Common.dll'
          artifactName: 'Jellyfin.Common'

      - task: PublishPipelineArtifact@1
        displayName: 'Publish Artifact Extensions'
        condition: and(succeeded(), eq(variables['BuildConfiguration'], 'Release'))
        inputs:
          targetPath: '$(build.ArtifactStagingDirectory)/Jellyfin.Server/Jellyfin.Extensions.dll'
          artifactName: 'Jellyfin.Extensions'