Merge pull request #947 from EraYaN/azure-pipelines
Add Azure Pipelines YAML
This commit is contained in:
commit
8a53b60912
183
.ci/azure-pipelines.yml
Normal file
183
.ci/azure-pipelines.yml
Normal file
|
@ -0,0 +1,183 @@
|
||||||
|
name: $(Date:yyyyMMdd)$(Rev:.r)
|
||||||
|
|
||||||
|
variables:
|
||||||
|
- name: TestProjects
|
||||||
|
value: 'Jellyfin.Server.Tests/Jellyfin.Server.Tests.csproj'
|
||||||
|
- name: RestoreBuildProjects
|
||||||
|
value: 'Jellyfin.Server/Jellyfin.Server.csproj'
|
||||||
|
|
||||||
|
pr:
|
||||||
|
autoCancel: true
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
batch: true
|
||||||
|
branches:
|
||||||
|
include:
|
||||||
|
- master
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
- job: main_build
|
||||||
|
displayName: Main Build
|
||||||
|
pool:
|
||||||
|
vmImage: ubuntu-16.04
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
release:
|
||||||
|
BuildConfiguration: Release
|
||||||
|
debug:
|
||||||
|
BuildConfiguration: Debug
|
||||||
|
maxParallel: 2
|
||||||
|
steps:
|
||||||
|
- checkout: self
|
||||||
|
clean: true
|
||||||
|
submodules: true
|
||||||
|
persistCredentials: false
|
||||||
|
|
||||||
|
- task: DotNetCoreCLI@2
|
||||||
|
displayName: Restore
|
||||||
|
inputs:
|
||||||
|
command: restore
|
||||||
|
projects: '$(RestoreBuildProjects)'
|
||||||
|
|
||||||
|
- task: DotNetCoreCLI@2
|
||||||
|
displayName: Build
|
||||||
|
inputs:
|
||||||
|
projects: '$(RestoreBuildProjects)'
|
||||||
|
arguments: '--configuration $(BuildConfiguration)'
|
||||||
|
|
||||||
|
- task: DotNetCoreCLI@2
|
||||||
|
displayName: Test
|
||||||
|
inputs:
|
||||||
|
command: test
|
||||||
|
projects: '$(RestoreBuildProjects)'
|
||||||
|
arguments: '--configuration $(BuildConfiguration)'
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
- task: DotNetCoreCLI@2
|
||||||
|
displayName: Publish
|
||||||
|
inputs:
|
||||||
|
command: publish
|
||||||
|
publishWebProjects: false
|
||||||
|
projects: '$(RestoreBuildProjects)'
|
||||||
|
arguments: '--configuration $(BuildConfiguration) --output $(build.artifactstagingdirectory)'
|
||||||
|
zipAfterPublish: false
|
||||||
|
|
||||||
|
# - task: PublishBuildArtifacts@1
|
||||||
|
# displayName: 'Publish Artifact'
|
||||||
|
# inputs:
|
||||||
|
# PathtoPublish: '$(build.artifactstagingdirectory)'
|
||||||
|
# artifactName: 'jellyfin-build-$(BuildConfiguration)'
|
||||||
|
# zipAfterPublish: true
|
||||||
|
|
||||||
|
- task: PublishBuildArtifacts@1
|
||||||
|
displayName: 'Publish Artifact Naming'
|
||||||
|
condition: eq(variables['BuildConfiguration'], 'Release')
|
||||||
|
inputs:
|
||||||
|
PathtoPublish: '$(build.artifactstagingdirectory)/Jellyfin.Server/Emby.Naming.dll'
|
||||||
|
artifactName: 'Jellyfin.Naming'
|
||||||
|
|
||||||
|
- task: PublishBuildArtifacts@1
|
||||||
|
displayName: 'Publish Artifact Controller'
|
||||||
|
condition: eq(variables['BuildConfiguration'], 'Release')
|
||||||
|
inputs:
|
||||||
|
PathtoPublish: '$(build.artifactstagingdirectory)/Jellyfin.Server/MediaBrowser.Controller.dll'
|
||||||
|
artifactName: 'Jellyfin.Controller'
|
||||||
|
|
||||||
|
- task: PublishBuildArtifacts@1
|
||||||
|
displayName: 'Publish Artifact Model'
|
||||||
|
condition: eq(variables['BuildConfiguration'], 'Release')
|
||||||
|
inputs:
|
||||||
|
PathtoPublish: '$(build.artifactstagingdirectory)/Jellyfin.Server/MediaBrowser.Model.dll'
|
||||||
|
artifactName: 'Jellyfin.Model'
|
||||||
|
|
||||||
|
- task: PublishBuildArtifacts@1
|
||||||
|
displayName: 'Publish Artifact Common'
|
||||||
|
condition: eq(variables['BuildConfiguration'], 'Release')
|
||||||
|
inputs:
|
||||||
|
PathtoPublish: '$(build.artifactstagingdirectory)/Jellyfin.Server/MediaBrowser.Common.dll'
|
||||||
|
artifactName: 'Jellyfin.Common'
|
||||||
|
|
||||||
|
- job: dotnet_compat
|
||||||
|
displayName: Compatibility Check
|
||||||
|
pool:
|
||||||
|
vmImage: ubuntu-16.04
|
||||||
|
dependsOn: main_build
|
||||||
|
condition: succeeded()
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
Naming:
|
||||||
|
NugetPackageName: Jellyfin.Naming
|
||||||
|
AssemblyFileName: Emby.Naming.dll
|
||||||
|
Controller:
|
||||||
|
NugetPackageName: Jellyfin.Controller
|
||||||
|
AssemblyFileName: MediaBrowser.Controller.dll
|
||||||
|
Model:
|
||||||
|
NugetPackageName: Jellyfin.Model
|
||||||
|
AssemblyFileName: MediaBrowser.Model.dll
|
||||||
|
Common:
|
||||||
|
NugetPackageName: Jellyfin.Common
|
||||||
|
AssemblyFileName: MediaBrowser.Common.dll
|
||||||
|
maxParallel: 2
|
||||||
|
steps:
|
||||||
|
- checkout: none
|
||||||
|
|
||||||
|
- task: NuGetCommand@2
|
||||||
|
displayName: 'Download $(NugetPackageName)'
|
||||||
|
inputs:
|
||||||
|
command: custom
|
||||||
|
arguments: 'install $(NugetPackageName) -OutputDirectory $(System.ArtifactsDirectory)/packages -ExcludeVersion -DirectDownload'
|
||||||
|
|
||||||
|
- task: CopyFiles@2
|
||||||
|
displayName: Copy Nuget Assembly to current-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-artifacts'
|
||||||
|
|
||||||
|
- task: CopyFiles@2
|
||||||
|
displayName: Copy Artifact Assembly to new-release folder
|
||||||
|
inputs:
|
||||||
|
sourceFolder: $(System.ArtifactsDirectory)/new-artifacts # Optional
|
||||||
|
contents: '**/*.dll'
|
||||||
|
targetFolder: $(System.ArtifactsDirectory)/new-release
|
||||||
|
cleanTargetFolder: true # Optional
|
||||||
|
overWrite: true # Optional
|
||||||
|
flattenFolders: true # Optional
|
||||||
|
|
||||||
|
- task: DownloadGitHubReleases@0
|
||||||
|
displayName: Download ABI compatibility check tool from GitHub
|
||||||
|
inputs:
|
||||||
|
connection: Jellyfin GitHub
|
||||||
|
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: '$(System.ArtifactsDirectory)/*-ci.zip'
|
||||||
|
destinationFolder: $(System.ArtifactsDirectory)/tools
|
||||||
|
cleanDestinationFolder: true
|
||||||
|
|
||||||
|
- task: CmdLine@2
|
||||||
|
displayName: Execute ABI compatibility check tool
|
||||||
|
inputs:
|
||||||
|
script: 'dotnet tools/CompatibilityCheckerCoreCLI.dll current-release/$(AssemblyFileName) new-release/$(AssemblyFileName)'
|
||||||
|
workingDirectory: $(System.ArtifactsDirectory) # Optional
|
||||||
|
#failOnStderr: false # Optional
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
<a href="https://github.com/jellyfin/jellyfin"><img alt="GPL 2.0 License" src="https://img.shields.io/github/license/jellyfin/jellyfin.svg"/></a>
|
<a href="https://github.com/jellyfin/jellyfin"><img alt="GPL 2.0 License" src="https://img.shields.io/github/license/jellyfin/jellyfin.svg"/></a>
|
||||||
<a href="https://github.com/jellyfin/jellyfin/releases"><img alt="Current Release" src="https://img.shields.io/github/release/jellyfin/jellyfin.svg"/></a>
|
<a href="https://github.com/jellyfin/jellyfin/releases"><img alt="Current Release" src="https://img.shields.io/github/release/jellyfin/jellyfin.svg"/></a>
|
||||||
<a href="https://translate.jellyfin.org/engage/jellyfin/?utm_source=widget"><img alt="Translations" src="https://translate.jellyfin.org/widgets/jellyfin/-/svg-badge.svg"/></a>
|
<a href="https://translate.jellyfin.org/engage/jellyfin/?utm_source=widget"><img alt="Translations" src="https://translate.jellyfin.org/widgets/jellyfin/-/svg-badge.svg"/></a>
|
||||||
<a href="https://cloud.drone.io/jellyfin/jellyfin"><img alt="Build Status" src="https://cloud.drone.io/api/badges/jellyfin/jellyfin/status.svg"/></a>
|
<a href="https://dev.azure.com/jellyfin-project/jellyfin/_build?definitionId=1"><img alt="Azure DevOps builds" src="https://dev.azure.com/jellyfin-project/jellyfin/_apis/build/status/Jellyfin%20CI"></a>
|
||||||
<a href="https://hub.docker.com/r/jellyfin/jellyfin"><img alt="Docker Pull Count" src="https://img.shields.io/docker/pulls/jellyfin/jellyfin.svg"/></a>
|
<a href="https://hub.docker.com/r/jellyfin/jellyfin"><img alt="Docker Pull Count" src="https://img.shields.io/docker/pulls/jellyfin/jellyfin.svg"/></a>
|
||||||
</br>
|
</br>
|
||||||
<a href="https://opencollective.com/jellyfin"><img alt="Donate" src="https://img.shields.io/opencollective/all/jellyfin.svg?label=backers"/></a>
|
<a href="https://opencollective.com/jellyfin"><img alt="Donate" src="https://img.shields.io/opencollective/all/jellyfin.svg?label=backers"/></a>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user