From 6834b64922d2dd10b8e27943ec6630d1d95d6ae5 Mon Sep 17 00:00:00 2001 From: Erwin de Haan Date: Mon, 18 Feb 2019 22:26:40 +0100 Subject: [PATCH 01/19] Add first Azure Pipeline (Build) --- .azure/azure-pipelines.yml | 50 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 .azure/azure-pipelines.yml diff --git a/.azure/azure-pipelines.yml b/.azure/azure-pipelines.yml new file mode 100644 index 0000000000..ad6ba1ab27 --- /dev/null +++ b/.azure/azure-pipelines.yml @@ -0,0 +1,50 @@ +resources: +- repo: self + +pool: + vmImage: Hosted Ubuntu 1604 +#Your build pipeline references an undefined variable named ‘Parameters.RestoreBuildProjects’. Create or edit the build pipeline for this YAML file, define the variable on the Variables tab. See https://go.microsoft.com/fwlink/?linkid=865972 +#Your build pipeline references an undefined variable named ‘Parameters.RestoreBuildProjects’. Create or edit the build pipeline for this YAML file, define the variable on the Variables tab. See https://go.microsoft.com/fwlink/?linkid=865972 +#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 +#Your build pipeline references an undefined variable named ‘Parameters.TestProjects’. Create or edit the build pipeline for this YAML file, define the variable on the Variables tab. See https://go.microsoft.com/fwlink/?linkid=865972 +#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 +#Your build pipeline references an undefined variable named ‘Parameters.RestoreBuildProjects’. Create or edit the build pipeline for this YAML file, define the variable on the Variables tab. See https://go.microsoft.com/fwlink/?linkid=865972 +#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 + +steps: +- task: DotNetCoreCLI@2 + displayName: Restore + inputs: + command: restore + projects: '$(Parameters.RestoreBuildProjects)' + +- task: DotNetCoreCLI@2 + displayName: Build + inputs: + projects: '$(Parameters.RestoreBuildProjects)' + arguments: '--configuration $(BuildConfiguration)' + +- task: DotNetCoreCLI@2 + displayName: Test + inputs: + command: test + projects: '$(Parameters.TestProjects)' + arguments: '--configuration $(BuildConfiguration)' + enabled: false + +- task: DotNetCoreCLI@2 + displayName: Publish + inputs: + command: publish + publishWebProjects: false + projects: '$(Parameters.RestoreBuildProjects)' + arguments: '--configuration $(BuildConfiguration) --output $(build.artifactstagingdirectory)' + zipAfterPublish: True + +- task: PublishBuildArtifacts@1 + displayName: 'Publish Artifact' + inputs: + PathtoPublish: '$(build.artifactstagingdirectory)' + enabled: false + + From 18717d103af8f1360360bd1bb52e50c7bd4217fa Mon Sep 17 00:00:00 2001 From: Erwin de Haan Date: Mon, 18 Feb 2019 22:36:24 +0100 Subject: [PATCH 02/19] Update azure-pipelines.yml for Azure Pipelines --- .azure/azure-pipelines.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.azure/azure-pipelines.yml b/.azure/azure-pipelines.yml index ad6ba1ab27..513c7b6fc3 100644 --- a/.azure/azure-pipelines.yml +++ b/.azure/azure-pipelines.yml @@ -1,6 +1,12 @@ resources: - repo: self +pr: + branches: + include: + - master + - releases/* + pool: vmImage: Hosted Ubuntu 1604 #Your build pipeline references an undefined variable named ‘Parameters.RestoreBuildProjects’. Create or edit the build pipeline for this YAML file, define the variable on the Variables tab. See https://go.microsoft.com/fwlink/?linkid=865972 From 60fc53306d3a5946dfb219da3163eaa49b99e4c5 Mon Sep 17 00:00:00 2001 From: Erwin de Haan Date: Mon, 18 Feb 2019 22:53:32 +0100 Subject: [PATCH 03/19] Fixed vmImage --- .azure/azure-pipelines.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.azure/azure-pipelines.yml b/.azure/azure-pipelines.yml index ad6ba1ab27..7ec002dd74 100644 --- a/.azure/azure-pipelines.yml +++ b/.azure/azure-pipelines.yml @@ -1,8 +1,14 @@ resources: -- repo: self + repositories: self + +pr: +include: +- master +- release-* + pool: - vmImage: Hosted Ubuntu 1604 + vmImage: ubuntu-16.04 #Your build pipeline references an undefined variable named ‘Parameters.RestoreBuildProjects’. Create or edit the build pipeline for this YAML file, define the variable on the Variables tab. See https://go.microsoft.com/fwlink/?linkid=865972 #Your build pipeline references an undefined variable named ‘Parameters.RestoreBuildProjects’. Create or edit the build pipeline for this YAML file, define the variable on the Variables tab. See https://go.microsoft.com/fwlink/?linkid=865972 #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 From ef17ec700bd18861967c7933727eb0e4a36a767a Mon Sep 17 00:00:00 2001 From: Erwin de Haan Date: Mon, 18 Feb 2019 23:24:39 +0100 Subject: [PATCH 04/19] Update azure-pipelines.yml --- .azure/azure-pipelines.yml | 72 ++++++++++++++++++-------------------- 1 file changed, 34 insertions(+), 38 deletions(-) diff --git a/.azure/azure-pipelines.yml b/.azure/azure-pipelines.yml index fc239032e0..d2f4dc393a 100644 --- a/.azure/azure-pipelines.yml +++ b/.azure/azure-pipelines.yml @@ -1,17 +1,11 @@ resources: repositories: self -pr: -include: -- master -- release-* - - pr: branches: include: - master - - releases/* + - release-* pool: vmImage: ubuntu-16.04 @@ -23,40 +17,42 @@ pool: #Your build pipeline references an undefined variable named ‘Parameters.RestoreBuildProjects’. Create or edit the build pipeline for this YAML file, define the variable on the Variables tab. See https://go.microsoft.com/fwlink/?linkid=865972 #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 -steps: -- task: DotNetCoreCLI@2 - displayName: Restore - inputs: - command: restore - projects: '$(Parameters.RestoreBuildProjects)' +jobs: +- job: Build + steps: + - task: DotNetCoreCLI@2 + displayName: Restore + inputs: + command: restore + projects: '$(Parameters.RestoreBuildProjects)' -- task: DotNetCoreCLI@2 - displayName: Build - inputs: - projects: '$(Parameters.RestoreBuildProjects)' - arguments: '--configuration $(BuildConfiguration)' + - task: DotNetCoreCLI@2 + displayName: Build + inputs: + projects: '$(Parameters.RestoreBuildProjects)' + arguments: '--configuration $(BuildConfiguration)' -- task: DotNetCoreCLI@2 - displayName: Test - inputs: - command: test - projects: '$(Parameters.TestProjects)' - arguments: '--configuration $(BuildConfiguration)' - enabled: false + - task: DotNetCoreCLI@2 + displayName: Test + inputs: + command: test + projects: '$(Parameters.TestProjects)' + arguments: '--configuration $(BuildConfiguration)' + enabled: false -- task: DotNetCoreCLI@2 - displayName: Publish - inputs: - command: publish - publishWebProjects: false - projects: '$(Parameters.RestoreBuildProjects)' - arguments: '--configuration $(BuildConfiguration) --output $(build.artifactstagingdirectory)' - zipAfterPublish: True + - task: DotNetCoreCLI@2 + displayName: Publish + inputs: + command: publish + publishWebProjects: false + projects: '$(Parameters.RestoreBuildProjects)' + arguments: '--configuration $(BuildConfiguration) --output $(build.artifactstagingdirectory)' + zipAfterPublish: True -- task: PublishBuildArtifacts@1 - displayName: 'Publish Artifact' - inputs: - PathtoPublish: '$(build.artifactstagingdirectory)' - enabled: false + - task: PublishBuildArtifacts@1 + displayName: 'Publish Artifact' + inputs: + PathtoPublish: '$(build.artifactstagingdirectory)' + enabled: false From 480999e8e637354867f2dbf6db9216c9d7a72ebe Mon Sep 17 00:00:00 2001 From: Erwin de Haan Date: Mon, 18 Feb 2019 23:42:24 +0100 Subject: [PATCH 05/19] Update azure-pipelines.yml for Azure Pipelines --- .azure/azure-pipelines.yml | 91 +++++++++++++++++++++----------------- 1 file changed, 50 insertions(+), 41 deletions(-) diff --git a/.azure/azure-pipelines.yml b/.azure/azure-pipelines.yml index d2f4dc393a..a69f0ab9fb 100644 --- a/.azure/azure-pipelines.yml +++ b/.azure/azure-pipelines.yml @@ -1,58 +1,67 @@ -resources: - repositories: self - pr: + autoCancel: true + +trigger: + batch: true branches: include: - master - - release-* pool: vmImage: ubuntu-16.04 -#Your build pipeline references an undefined variable named ‘Parameters.RestoreBuildProjects’. Create or edit the build pipeline for this YAML file, define the variable on the Variables tab. See https://go.microsoft.com/fwlink/?linkid=865972 -#Your build pipeline references an undefined variable named ‘Parameters.RestoreBuildProjects’. Create or edit the build pipeline for this YAML file, define the variable on the Variables tab. See https://go.microsoft.com/fwlink/?linkid=865972 -#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 -#Your build pipeline references an undefined variable named ‘Parameters.TestProjects’. Create or edit the build pipeline for this YAML file, define the variable on the Variables tab. See https://go.microsoft.com/fwlink/?linkid=865972 -#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 -#Your build pipeline references an undefined variable named ‘Parameters.RestoreBuildProjects’. Create or edit the build pipeline for this YAML file, define the variable on the Variables tab. See https://go.microsoft.com/fwlink/?linkid=865972 + +variables: + - name: TestProjects + value: '' + - name: RestoreBuildProjects + value: 'Jellyfin.Server/Jellyfin.Server.csproj' + #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 jobs: - job: Build - steps: - - task: DotNetCoreCLI@2 - displayName: Restore - inputs: - command: restore - projects: '$(Parameters.RestoreBuildProjects)' + steps: + - checkout: self + clean: false + submodules: true + persistCredentials: false - - task: DotNetCoreCLI@2 - displayName: Build - inputs: - projects: '$(Parameters.RestoreBuildProjects)' - arguments: '--configuration $(BuildConfiguration)' + - task: DotNetCoreCLI@2 + displayName: Restore + inputs: + command: restore + projects: '$(RestoreBuildProjects)' - - task: DotNetCoreCLI@2 - displayName: Test - inputs: - command: test - projects: '$(Parameters.TestProjects)' - arguments: '--configuration $(BuildConfiguration)' - enabled: false + - 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: True + + - task: PublishBuildArtifacts@1 + displayName: 'Publish Artifact' + inputs: + PathtoPublish: '$(build.artifactstagingdirectory)' + artifactName: 'build-$(BuildConfiguration)' + zipAfterPublish: false - - task: DotNetCoreCLI@2 - displayName: Publish - inputs: - command: publish - publishWebProjects: false - projects: '$(Parameters.RestoreBuildProjects)' - arguments: '--configuration $(BuildConfiguration) --output $(build.artifactstagingdirectory)' - zipAfterPublish: True - - task: PublishBuildArtifacts@1 - displayName: 'Publish Artifact' - inputs: - PathtoPublish: '$(build.artifactstagingdirectory)' - enabled: false From 7c9803e135eb7c02f4b759a4b0dc1b9a55b30af1 Mon Sep 17 00:00:00 2001 From: Erwin de Haan Date: Mon, 18 Feb 2019 23:47:31 +0100 Subject: [PATCH 06/19] Update azure-pipelines.yml for Azure Pipelines --- .azure/azure-pipelines.yml | 104 +++++++++++++++++++------------------ 1 file changed, 54 insertions(+), 50 deletions(-) diff --git a/.azure/azure-pipelines.yml b/.azure/azure-pipelines.yml index a69f0ab9fb..3b48664956 100644 --- a/.azure/azure-pipelines.yml +++ b/.azure/azure-pipelines.yml @@ -1,3 +1,20 @@ +name: Build + +resources: + repositories: + - repository: self + type: github + name: EraYaN/jellyfin + +pool: + vmImage: ubuntu-16.04 + +variables: +- name: TestProjects + value: '' +- name: RestoreBuildProjects + value: 'Jellyfin.Server/Jellyfin.Server.csproj' + pr: autoCancel: true @@ -7,61 +24,48 @@ trigger: include: - master -pool: - vmImage: ubuntu-16.04 - -variables: - - name: TestProjects - value: '' - - name: RestoreBuildProjects - value: 'Jellyfin.Server/Jellyfin.Server.csproj' - #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 jobs: -- job: Build - steps: - - checkout: self - clean: false - submodules: true - persistCredentials: false + - job: Build + steps: + - checkout: self + clean: false + 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: True - - - task: PublishBuildArtifacts@1 - displayName: 'Publish Artifact' - inputs: - PathtoPublish: '$(build.artifactstagingdirectory)' - artifactName: 'build-$(BuildConfiguration)' - zipAfterPublish: 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: true + - task: PublishBuildArtifacts@1 + displayName: 'Publish Artifact' + inputs: + PathtoPublish: '$(build.artifactstagingdirectory)' + artifactName: 'build-$(BuildConfiguration)' + zipAfterPublish: false From 7bbcb455c0b6590d3e0e52948657de74b11bb3b6 Mon Sep 17 00:00:00 2001 From: Erwin de Haan Date: Tue, 19 Feb 2019 02:17:57 +0100 Subject: [PATCH 07/19] Added compat checking to YAML --- .azure/azure-pipelines.yml | 135 +++++++++++++++++++++++++++++++------ 1 file changed, 116 insertions(+), 19 deletions(-) diff --git a/.azure/azure-pipelines.yml b/.azure/azure-pipelines.yml index 3b48664956..057534608e 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 + + From 5ef63e738dae8c9fda0a2cee2124aff627723fda Mon Sep 17 00:00:00 2001 From: Erwin de Haan Date: Tue, 19 Feb 2019 02:28:16 +0100 Subject: [PATCH 08/19] Added final stage and removed triggers. --- .azure/azure-pipelines.yml | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/.azure/azure-pipelines.yml b/.azure/azure-pipelines.yml index 057534608e..87be79d0a4 100644 --- a/.azure/azure-pipelines.yml +++ b/.azure/azure-pipelines.yml @@ -110,16 +110,16 @@ jobs: matrix: Naming: NugetPackageName: Jellyfin.Naming - AssemblyName: Emby.Naming.dll + AssemblyFileName: Emby.Naming.dll Controller: NugetPackageName: Jellyfin.Controller - AssemblyName: MediaBrowser.Controller.dll + AssemblyFileName: MediaBrowser.Controller.dll Model: NugetPackageName: Jellyfin.Model - AssemblyName: MediaBrowser.Model.dll + AssemblyFileName: MediaBrowser.Model.dll Common: NugetPackageName: Jellyfin.Common - AssemblyName: MediaBrowser.Common.dll + AssemblyFileName: MediaBrowser.Common.dll steps: - checkout: none @@ -162,7 +162,14 @@ jobs: displayName: Extract ABI compatibility check tool inputs: archiveFilePatterns: '*-ci.zip' - destinationFolder: $(System.ArtifactsDirectory)\tools + destinationFolder: $(System.ArtifactsDirectory)/tools cleanDestinationFolder: true + - task: CmdLine@2 + displayName: Execute ABI compatibility check tool + inputs: + script: 'tools/CompatibilityCheckerCoreCLI current-release/$(AssemblyFileName) new-release/$(AssemblyFileName)' + workingDirectory: $(System.ArtifactsDirectory) # Optional + #failOnStderr: false # Optional + From e2d0f6707756407f76e819a1c55928f1a133292f Mon Sep 17 00:00:00 2001 From: Erwin de Haan Date: Tue, 19 Feb 2019 02:32:36 +0100 Subject: [PATCH 09/19] Fix the conditions. --- .azure/azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.azure/azure-pipelines.yml b/.azure/azure-pipelines.yml index 87be79d0a4..5e8a9f9360 100644 --- a/.azure/azure-pipelines.yml +++ b/.azure/azure-pipelines.yml @@ -105,7 +105,7 @@ jobs: pool: vmImage: ubuntu-16.04 dependsOn: main_build - condition: success() + condition: succeeded() strategy: matrix: Naming: From d4bc7b5a5ae3a5e59e367e4832d8a929d433c46f Mon Sep 17 00:00:00 2001 From: Erwin de Haan Date: Tue, 19 Feb 2019 02:42:42 +0100 Subject: [PATCH 10/19] Fix NuGet task name. --- .azure/azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.azure/azure-pipelines.yml b/.azure/azure-pipelines.yml index 5e8a9f9360..38a355b96f 100644 --- a/.azure/azure-pipelines.yml +++ b/.azure/azure-pipelines.yml @@ -123,7 +123,7 @@ jobs: steps: - checkout: none - - task: NuGet@2 + - task: NuGetCommand@2 displayName: 'Download $(NugetPackageName)' inputs: command: custom From 18418b68926f42a16ba848ba2dc7135f4473682d Mon Sep 17 00:00:00 2001 From: Erwin de Haan Date: Tue, 19 Feb 2019 02:50:25 +0100 Subject: [PATCH 11/19] Fixed secondary Artifact paths and Debug config. --- .azure/azure-pipelines.yml | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/.azure/azure-pipelines.yml b/.azure/azure-pipelines.yml index 38a355b96f..500d9d8c80 100644 --- a/.azure/azure-pipelines.yml +++ b/.azure/azure-pipelines.yml @@ -25,7 +25,7 @@ jobs: release: BuildConfiguration: Release debug: - BuildConfiguration: Release + BuildConfiguration: Debug steps: - checkout: self clean: false @@ -66,39 +66,35 @@ jobs: inputs: PathtoPublish: '$(build.artifactstagingdirectory)' artifactName: 'jellyfin-build-$(BuildConfiguration)' - zipAfterPublish: false + zipAfterPublish: true - task: PublishBuildArtifacts@1 displayName: 'Publish Artifact Naming' condition: eq(variables['BuildConfiguration'], 'Release') inputs: - PathtoPublish: '$(build.artifactstagingdirectory)/MediaBrowser.Naming.dll' + PathtoPublish: '$(build.artifactstagingdirectory)/Jellyfin.Server/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' + PathtoPublish: '$(build.artifactstagingdirectory)/Jellyfin.Server/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' + PathtoPublish: '$(build.artifactstagingdirectory)/Jellyfin.Server/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' + PathtoPublish: '$(build.artifactstagingdirectory)/Jellyfin.Server/MediaBrowser.Common.dll' artifactName: 'Jellyfin.Common' - zipAfterPublish: false - job: dotnet_compat displayName: Compatibility Check From 9961c8c4597c0e83d88491ca87e3e7535f27a661 Mon Sep 17 00:00:00 2001 From: Erwin de Haan Date: Tue, 19 Feb 2019 02:55:10 +0100 Subject: [PATCH 12/19] No full publish of artifacts. --- .azure/azure-pipelines.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.azure/azure-pipelines.yml b/.azure/azure-pipelines.yml index 500d9d8c80..9fbb979676 100644 --- a/.azure/azure-pipelines.yml +++ b/.azure/azure-pipelines.yml @@ -59,14 +59,14 @@ jobs: publishWebProjects: false projects: '$(RestoreBuildProjects)' arguments: '--configuration $(BuildConfiguration) --output $(build.artifactstagingdirectory)' - zipAfterPublish: true + zipAfterPublish: false - - task: PublishBuildArtifacts@1 - displayName: 'Publish Artifact' - inputs: - PathtoPublish: '$(build.artifactstagingdirectory)' - artifactName: 'jellyfin-build-$(BuildConfiguration)' - zipAfterPublish: true + # - task: PublishBuildArtifacts@1 + # displayName: 'Publish Artifact' + # inputs: + # PathtoPublish: '$(build.artifactstagingdirectory)' + # artifactName: 'jellyfin-build-$(BuildConfiguration)' + # zipAfterPublish: true - task: PublishBuildArtifacts@1 displayName: 'Publish Artifact Naming' From 6b1a64652fcbf087cca6a1c1817189d852797937 Mon Sep 17 00:00:00 2001 From: Erwin de Haan Date: Tue, 19 Feb 2019 02:59:56 +0100 Subject: [PATCH 13/19] Fix path for naming, and add extra CopyFIle Task. --- .azure/azure-pipelines.yml | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/.azure/azure-pipelines.yml b/.azure/azure-pipelines.yml index 9fbb979676..3e133290c4 100644 --- a/.azure/azure-pipelines.yml +++ b/.azure/azure-pipelines.yml @@ -72,7 +72,7 @@ jobs: displayName: 'Publish Artifact Naming' condition: eq(variables['BuildConfiguration'], 'Release') inputs: - PathtoPublish: '$(build.artifactstagingdirectory)/Jellyfin.Server/MediaBrowser.Naming.dll' + PathtoPublish: '$(build.artifactstagingdirectory)/Jellyfin.Server/Emby.Naming.dll' artifactName: 'Jellyfin.Naming' - task: PublishBuildArtifacts@1 @@ -126,7 +126,7 @@ jobs: arguments: 'install $(NugetPackageName) -OutputDirectory $(System.ArtifactsDirectory)/packages -ExcludeVersion -DirectDownload' - task: CopyFiles@2 - displayName: Copy Nuget Assembly to release folder + displayName: Copy Nuget Assembly to current-release folder inputs: sourceFolder: $(System.ArtifactsDirectory)/packages/$(NugetPackageName) # Optional contents: '**/*.dll' @@ -142,7 +142,17 @@ jobs: allowPartiallySucceededBuilds: false # Optional downloadType: 'single' # Options: single, specific artifactName: '$(NugetPackageName)' # Required when downloadType == Single - downloadPath: '$(System.ArtifactsDirectory)/new-release' + 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 From 5238ba5d8f4987d0ccf79bf3f0fa065a31fead08 Mon Sep 17 00:00:00 2001 From: Erwin de Haan Date: Tue, 19 Feb 2019 03:07:44 +0100 Subject: [PATCH 14/19] Fix tool extraction search pattern. --- .azure/azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.azure/azure-pipelines.yml b/.azure/azure-pipelines.yml index 3e133290c4..dcf69e2311 100644 --- a/.azure/azure-pipelines.yml +++ b/.azure/azure-pipelines.yml @@ -167,7 +167,7 @@ jobs: - task: ExtractFiles@1 displayName: Extract ABI compatibility check tool inputs: - archiveFilePatterns: '*-ci.zip' + archiveFilePatterns: '$(System.ArtifactsDirectory)/*-ci.zip' destinationFolder: $(System.ArtifactsDirectory)/tools cleanDestinationFolder: true From 0849c4a4478581752197ae180643e6eaa3daaa1f Mon Sep 17 00:00:00 2001 From: Erwin de Haan Date: Tue, 19 Feb 2019 03:12:53 +0100 Subject: [PATCH 15/19] Switched to dotnet based execution again because of permissions. --- .azure/azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.azure/azure-pipelines.yml b/.azure/azure-pipelines.yml index dcf69e2311..7437874bb5 100644 --- a/.azure/azure-pipelines.yml +++ b/.azure/azure-pipelines.yml @@ -174,7 +174,7 @@ jobs: - task: CmdLine@2 displayName: Execute ABI compatibility check tool inputs: - script: 'tools/CompatibilityCheckerCoreCLI current-release/$(AssemblyFileName) new-release/$(AssemblyFileName)' + script: 'dotnet tools/CompatibilityCheckerCoreCLI.dll current-release/$(AssemblyFileName) new-release/$(AssemblyFileName)' workingDirectory: $(System.ArtifactsDirectory) # Optional #failOnStderr: false # Optional From 029bafdf9c92c8ca09d10e2dff7c90dbd5c33f09 Mon Sep 17 00:00:00 2001 From: Erwin de Haan Date: Tue, 19 Feb 2019 03:16:17 +0100 Subject: [PATCH 16/19] Changed build name template and limited number of parallel jobs. --- .azure/azure-pipelines.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.azure/azure-pipelines.yml b/.azure/azure-pipelines.yml index 7437874bb5..a14cf0aa3f 100644 --- a/.azure/azure-pipelines.yml +++ b/.azure/azure-pipelines.yml @@ -1,4 +1,4 @@ -name: $(Date:yyyyMMdd).$(Rev:.r) +name: $(Date:yyyyMMdd)$(Rev:.r) variables: - name: TestProjects @@ -26,6 +26,7 @@ jobs: BuildConfiguration: Release debug: BuildConfiguration: Debug + maxParallel: 2 steps: - checkout: self clean: false @@ -116,6 +117,7 @@ jobs: Common: NugetPackageName: Jellyfin.Common AssemblyFileName: MediaBrowser.Common.dll + maxParallel: 2 steps: - checkout: none From 5ccba7cf8aab7895d16beb9e2d9d24408a361ac1 Mon Sep 17 00:00:00 2001 From: Erwin de Haan Date: Wed, 27 Feb 2019 00:20:04 +0100 Subject: [PATCH 17/19] Move .azure to .ci --- {.azure => .ci}/azure-pipelines.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {.azure => .ci}/azure-pipelines.yml (100%) diff --git a/.azure/azure-pipelines.yml b/.ci/azure-pipelines.yml similarity index 100% rename from .azure/azure-pipelines.yml rename to .ci/azure-pipelines.yml From feb5b62ad4bf62e5d3585100b39643a41f27e626 Mon Sep 17 00:00:00 2001 From: Erwin de Haan Date: Wed, 27 Feb 2019 00:53:16 +0100 Subject: [PATCH 18/19] Enabled clean and updated the Github Connection Name --- .ci/azure-pipelines.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.ci/azure-pipelines.yml b/.ci/azure-pipelines.yml index a14cf0aa3f..e5845c0efa 100644 --- a/.ci/azure-pipelines.yml +++ b/.ci/azure-pipelines.yml @@ -29,7 +29,7 @@ jobs: maxParallel: 2 steps: - checkout: self - clean: false + clean: true submodules: true persistCredentials: false @@ -159,7 +159,7 @@ jobs: - task: DownloadGitHubReleases@0 displayName: Download ABI compatibility check tool from GitHub inputs: - connection: GitHub (EraYaN) + connection: Jellyfin GitHub userRepository: EraYaN/dotnet-compatibility defaultVersionType: 'latest' # Options: latest, specificVersion, specificTag #version: # Required when defaultVersionType != Latest From 942c400c19157ca437c7c885677a0a92fdd120f5 Mon Sep 17 00:00:00 2001 From: Erwin de Haan Date: Tue, 5 Mar 2019 17:12:56 +0100 Subject: [PATCH 19/19] Update README with Azure Pipelines status badge --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d869c89789..1f635bdd25 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ GPL 2.0 License Current Release Translations -Build Status +Azure DevOps builds Docker Pull Count
Donate