Browse Source

Merge pull request #862 from EraYaN/abi-check-drone

Add dotnet-compat ABI testing and Debug configuration building to drone-CI
Andrew Rabert 6 years ago
parent
commit
eab35890dc
4 changed files with 108 additions and 2 deletions
  1. 1 0
      .dockerignore
  2. 101 2
      .drone.yml
  3. 4 0
      .editorconfig
  4. 2 0
      .gitignore

+ 1 - 0
.dockerignore

@@ -8,3 +8,4 @@ README.md
 deployment/*/dist
 deployment/*/pkg-dist
 deployment/collect-dist/
+ci/

+ 101 - 2
.drone.yml

@@ -1,12 +1,111 @@
+---
 kind: pipeline
-name: build
+name: build-debug
 
 steps:
 - name: submodules
   image: docker:git
   commands:
     - git submodule update --init --recursive
+
+- name: build
+  image: microsoft/dotnet:2-sdk
+  commands:
+    - dotnet publish "Jellyfin.Server" --configuration Debug --output "../ci/ci-debug"
+
+---
+kind: pipeline
+name: build-release
+
+steps:
+- name: submodules
+  image: docker:git
+  commands:
+    - git submodule update --init --recursive
+
+- name: build
+  image: microsoft/dotnet:2-sdk
+  commands:
+    - dotnet publish "Jellyfin.Server" --configuration Release --output "../ci/ci-release"
+
+---
+
+kind: pipeline
+name: check-abi
+
+steps:
+- name: submodules
+  image: docker:git
+  commands:
+    - git submodule update --init --recursive
+
 - name: build
   image: microsoft/dotnet:2-sdk
   commands:
-    - dotnet publish --configuration release --output /release Jellyfin.Server
+    - dotnet publish "Jellyfin.Server" --configuration Release --output "../ci/ci-release"
+
+- name: clone-dotnet-compat
+  image: docker:git
+  commands:
+    - git clone --depth 1 https://github.com/EraYaN/dotnet-compatibility ci/dotnet-compatibility
+
+- name: build-dotnet-compat
+  image: microsoft/dotnet:2-sdk
+  commands:
+    - dotnet publish "ci/dotnet-compatibility/CompatibilityCheckerCoreCLI" --configuration Release --output "../../ci-tools"
+
+- name: download-last-nuget-release-common
+  image: plugins/download
+  settings:
+    source: https://www.nuget.org/api/v2/package/Jellyfin.Common
+    destination: ci/Jellyfin.Common.nupkg
+
+- name: download-last-nuget-release-model
+  image: plugins/download
+  settings:
+    source: https://www.nuget.org/api/v2/package/Jellyfin.Model
+    destination: ci/Jellyfin.Model.nupkg
+
+- name: download-last-nuget-release-controller
+  image: plugins/download
+  settings:
+    source: https://www.nuget.org/api/v2/package/Jellyfin.Controller
+    destination: ci/Jellyfin.Controller.nupkg
+
+- name: download-last-nuget-release-naming
+  image: plugins/download
+  settings:
+    source: https://www.nuget.org/api/v2/package/Jellyfin.Naming
+    destination: ci/Jellyfin.Naming.nupkg
+
+- name: extract-downloaded-nuget-packages
+  image: garthk/unzip
+  commands:
+  - unzip -j ci/Jellyfin.Common.nupkg  "*.dll" -d ci/nuget-packages
+  - unzip -j ci/Jellyfin.Model.nupkg  "*.dll" -d ci/nuget-packages
+  - unzip -j ci/Jellyfin.Controller.nupkg  "*.dll" -d ci/nuget-packages
+  - unzip -j ci/Jellyfin.Naming.nupkg  "*.dll" -d ci/nuget-packages
+
+- name: run-dotnet-compat-common
+  image: microsoft/dotnet:2-runtime
+  err_ignore: true
+  commands:
+  - dotnet ci/ci-tools/CompatibilityCheckerCoreCLI.dll ci/nuget-packages/Jellyfin.Common.dll ci/ci-release/Jellyfin.Common.dll
+
+- name: run-dotnet-compat-model
+  image: microsoft/dotnet:2-runtime
+  err_ignore: true
+  commands:
+  - dotnet ci/ci-tools/CompatibilityCheckerCoreCLI.dll ci/nuget-packages/Jellyfin.Model.dll ci/ci-release/Jellyfin.Model.dll
+
+- name: run-dotnet-compat-controller
+  image: microsoft/dotnet:2-runtime
+  err_ignore: true
+  commands:
+  - dotnet ci/ci-tools/CompatibilityCheckerCoreCLI.dll ci/nuget-packages/Jellyfin.Controller.dll ci/ci-release/Jellyfin.Controller.dll
+
+- name: run-dotnet-compat-naming
+  image: microsoft/dotnet:2-runtime
+  err_ignore: true
+  commands:
+  - dotnet ci/ci-tools/CompatibilityCheckerCoreCLI.dll ci/nuget-packages/Jellyfin.Naming.dll ci/ci-release/Jellyfin.Naming.dll

+ 4 - 0
.editorconfig

@@ -15,6 +15,10 @@ insert_final_newline = true
 end_of_line = lf
 max_line_length = null
 
+# YAML indentation
+[*.{yml,yaml}]
+indent_size = 2
+
 # XML indentation
 [*.{csproj,xml}]
 indent_size = 2

+ 2 - 0
.gitignore

@@ -264,3 +264,5 @@ deployment/**/pkg-dist-tmp/
 deployment/collect-dist/
 
 jellyfin_version.ini
+
+ci/