|
@@ -1,19 +1,10 @@
|
|
|
-name: Build
|
|
|
|
|
-
|
|
|
|
|
-resources:
|
|
|
|
|
- repositories:
|
|
|
|
|
- - repository: self
|
|
|
|
|
- type: github
|
|
|
|
|
- name: EraYaN/jellyfin
|
|
|
|
|
-
|
|
|
|
|
-pool:
|
|
|
|
|
- vmImage: ubuntu-16.04
|
|
|
|
|
|
|
+name: $(Date:yyyyMMdd).$(Rev:.r)
|
|
|
|
|
|
|
|
variables:
|
|
variables:
|
|
|
-- name: TestProjects
|
|
|
|
|
- value: ''
|
|
|
|
|
-- name: RestoreBuildProjects
|
|
|
|
|
- value: 'Jellyfin.Server/Jellyfin.Server.csproj'
|
|
|
|
|
|
|
+ - name: TestProjects
|
|
|
|
|
+ value: 'Jellyfin.Server.Tests/Jellyfin.Server.Tests.csproj'
|
|
|
|
|
+ - name: RestoreBuildProjects
|
|
|
|
|
+ value: 'Jellyfin.Server/Jellyfin.Server.csproj'
|
|
|
|
|
|
|
|
pr:
|
|
pr:
|
|
|
autoCancel: true
|
|
autoCancel: true
|
|
@@ -22,12 +13,19 @@ trigger:
|
|
|
batch: true
|
|
batch: true
|
|
|
branches:
|
|
branches:
|
|
|
include:
|
|
include:
|
|
|
- - master
|
|
|
|
|
-
|
|
|
|
|
-#Your build pipeline references the ‘BuildConfiguration’ variable, which you’ve selected to be settable at queue time. Create or edit the build pipeline for this YAML file, define the variable on the Variables tab, and then select the option to make it settable at queue time. See https://go.microsoft.com/fwlink/?linkid=865971
|
|
|
|
|
|
|
+ - master
|
|
|
|
|
|
|
|
jobs:
|
|
jobs:
|
|
|
- - job: Build
|
|
|
|
|
|
|
+ - job: main_build
|
|
|
|
|
+ displayName: Main Build
|
|
|
|
|
+ pool:
|
|
|
|
|
+ vmImage: ubuntu-16.04
|
|
|
|
|
+ strategy:
|
|
|
|
|
+ matrix:
|
|
|
|
|
+ release:
|
|
|
|
|
+ BuildConfiguration: Release
|
|
|
|
|
+ debug:
|
|
|
|
|
+ BuildConfiguration: Release
|
|
|
steps:
|
|
steps:
|
|
|
- checkout: self
|
|
- checkout: self
|
|
|
clean: false
|
|
clean: false
|
|
@@ -67,5 +65,104 @@ jobs:
|
|
|
displayName: 'Publish Artifact'
|
|
displayName: 'Publish Artifact'
|
|
|
inputs:
|
|
inputs:
|
|
|
PathtoPublish: '$(build.artifactstagingdirectory)'
|
|
PathtoPublish: '$(build.artifactstagingdirectory)'
|
|
|
- artifactName: 'build-$(BuildConfiguration)'
|
|
|
|
|
|
|
+ artifactName: 'jellyfin-build-$(BuildConfiguration)'
|
|
|
zipAfterPublish: false
|
|
zipAfterPublish: false
|
|
|
|
|
+
|
|
|
|
|
+ - task: PublishBuildArtifacts@1
|
|
|
|
|
+ displayName: 'Publish Artifact Naming'
|
|
|
|
|
+ condition: eq(variables['BuildConfiguration'], 'Release')
|
|
|
|
|
+ inputs:
|
|
|
|
|
+ PathtoPublish: '$(build.artifactstagingdirectory)/MediaBrowser.Naming.dll'
|
|
|
|
|
+ artifactName: 'Jellyfin.Naming'
|
|
|
|
|
+ zipAfterPublish: false
|
|
|
|
|
+
|
|
|
|
|
+ - task: PublishBuildArtifacts@1
|
|
|
|
|
+ displayName: 'Publish Artifact Controller'
|
|
|
|
|
+ condition: eq(variables['BuildConfiguration'], 'Release')
|
|
|
|
|
+ inputs:
|
|
|
|
|
+ PathtoPublish: '$(build.artifactstagingdirectory)/MediaBrowser.Controller.dll'
|
|
|
|
|
+ artifactName: 'Jellyfin.Controller'
|
|
|
|
|
+ zipAfterPublish: false
|
|
|
|
|
+
|
|
|
|
|
+ - task: PublishBuildArtifacts@1
|
|
|
|
|
+ displayName: 'Publish Artifact Model'
|
|
|
|
|
+ condition: eq(variables['BuildConfiguration'], 'Release')
|
|
|
|
|
+ inputs:
|
|
|
|
|
+ PathtoPublish: '$(build.artifactstagingdirectory)/MediaBrowser.Model.dll'
|
|
|
|
|
+ artifactName: 'Jellyfin.Model'
|
|
|
|
|
+ zipAfterPublish: false
|
|
|
|
|
+
|
|
|
|
|
+ - task: PublishBuildArtifacts@1
|
|
|
|
|
+ displayName: 'Publish Artifact Common'
|
|
|
|
|
+ condition: eq(variables['BuildConfiguration'], 'Release')
|
|
|
|
|
+ inputs:
|
|
|
|
|
+ PathtoPublish: '$(build.artifactstagingdirectory)/MediaBrowser.Common.dll'
|
|
|
|
|
+ artifactName: 'Jellyfin.Common'
|
|
|
|
|
+ zipAfterPublish: false
|
|
|
|
|
+
|
|
|
|
|
+ - job: dotnet_compat
|
|
|
|
|
+ displayName: Compatibility Check
|
|
|
|
|
+ pool:
|
|
|
|
|
+ vmImage: ubuntu-16.04
|
|
|
|
|
+ dependsOn: main_build
|
|
|
|
|
+ condition: success()
|
|
|
|
|
+ strategy:
|
|
|
|
|
+ matrix:
|
|
|
|
|
+ Naming:
|
|
|
|
|
+ NugetPackageName: Jellyfin.Naming
|
|
|
|
|
+ AssemblyName: Emby.Naming.dll
|
|
|
|
|
+ Controller:
|
|
|
|
|
+ NugetPackageName: Jellyfin.Controller
|
|
|
|
|
+ AssemblyName: MediaBrowser.Controller.dll
|
|
|
|
|
+ Model:
|
|
|
|
|
+ NugetPackageName: Jellyfin.Model
|
|
|
|
|
+ AssemblyName: MediaBrowser.Model.dll
|
|
|
|
|
+ Common:
|
|
|
|
|
+ NugetPackageName: Jellyfin.Common
|
|
|
|
|
+ AssemblyName: MediaBrowser.Common.dll
|
|
|
|
|
+ steps:
|
|
|
|
|
+ - checkout: none
|
|
|
|
|
+
|
|
|
|
|
+ - task: NuGet@2
|
|
|
|
|
+ displayName: 'Download $(NugetPackageName)'
|
|
|
|
|
+ inputs:
|
|
|
|
|
+ command: custom
|
|
|
|
|
+ arguments: 'install $(NugetPackageName) -OutputDirectory $(System.ArtifactsDirectory)/packages -ExcludeVersion -DirectDownload'
|
|
|
|
|
+
|
|
|
|
|
+ - task: CopyFiles@2
|
|
|
|
|
+ displayName: Copy Nuget Assembly to release folder
|
|
|
|
|
+ inputs:
|
|
|
|
|
+ sourceFolder: $(System.ArtifactsDirectory)/packages/$(NugetPackageName) # Optional
|
|
|
|
|
+ contents: '**/*.dll'
|
|
|
|
|
+ targetFolder: $(System.ArtifactsDirectory)/current-release
|
|
|
|
|
+ cleanTargetFolder: true # Optional
|
|
|
|
|
+ overWrite: true # Optional
|
|
|
|
|
+ flattenFolders: true # Optional
|
|
|
|
|
+
|
|
|
|
|
+ - task: DownloadBuildArtifacts@0
|
|
|
|
|
+ displayName: Download the Assembly Build Artifact
|
|
|
|
|
+ inputs:
|
|
|
|
|
+ buildType: 'current' # Options: current, specific
|
|
|
|
|
+ allowPartiallySucceededBuilds: false # Optional
|
|
|
|
|
+ downloadType: 'single' # Options: single, specific
|
|
|
|
|
+ artifactName: '$(NugetPackageName)' # Required when downloadType == Single
|
|
|
|
|
+ downloadPath: '$(System.ArtifactsDirectory)/new-release'
|
|
|
|
|
+
|
|
|
|
|
+ - task: DownloadGitHubReleases@0
|
|
|
|
|
+ displayName: Download ABI compatibility check tool from GitHub
|
|
|
|
|
+ inputs:
|
|
|
|
|
+ connection: GitHub (EraYaN)
|
|
|
|
|
+ userRepository: EraYaN/dotnet-compatibility
|
|
|
|
|
+ defaultVersionType: 'latest' # Options: latest, specificVersion, specificTag
|
|
|
|
|
+ #version: # Required when defaultVersionType != Latest
|
|
|
|
|
+ itemPattern: '**-ci.zip' # Optional
|
|
|
|
|
+ downloadPath: '$(System.ArtifactsDirectory)'
|
|
|
|
|
+
|
|
|
|
|
+ - task: ExtractFiles@1
|
|
|
|
|
+ displayName: Extract ABI compatibility check tool
|
|
|
|
|
+ inputs:
|
|
|
|
|
+ archiveFilePatterns: '*-ci.zip'
|
|
|
|
|
+ destinationFolder: $(System.ArtifactsDirectory)\tools
|
|
|
|
|
+ cleanDestinationFolder: true
|
|
|
|
|
+
|
|
|
|
|
+
|