aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErwin de Haan <EraYaN@users.noreply.github.com>2019-02-19 02:17:57 +0100
committerErwin de Haan <EraYaN@users.noreply.github.com>2019-02-19 02:17:57 +0100
commit7bbcb455c0b6590d3e0e52948657de74b11bb3b6 (patch)
tree58100839c4e54dca77bc4d26b219944951622f93
parent7c9803e135eb7c02f4b759a4b0dc1b9a55b30af1 (diff)
Added compat checking to YAML
-rw-r--r--.azure/azure-pipelines.yml135
1 files changed, 116 insertions, 19 deletions
diff --git a/.azure/azure-pipelines.yml b/.azure/azure-pipelines.yml
index 3b4866495..057534608 100644
--- a/.azure/azure-pipelines.yml
+++ b/.azure/azure-pipelines.yml
@@ -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:
-- 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:
autoCancel: true
@@ -22,12 +13,19 @@ trigger:
batch: true
branches:
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:
- - job: Build
+ - job: main_build
+ displayName: Main Build
+ pool:
+ vmImage: ubuntu-16.04
+ strategy:
+ matrix:
+ release:
+ BuildConfiguration: Release
+ debug:
+ BuildConfiguration: Release
steps:
- checkout: self
clean: false
@@ -67,5 +65,104 @@ jobs:
displayName: 'Publish Artifact'
inputs:
PathtoPublish: '$(build.artifactstagingdirectory)'
- artifactName: 'build-$(BuildConfiguration)'
+ artifactName: 'jellyfin-build-$(BuildConfiguration)'
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
+
+