Added compat checking to YAML

This commit is contained in:
Erwin de Haan 2019-02-19 02:17:57 +01:00
parent 7c9803e135
commit 7bbcb455c0

View file

@ -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 youve 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