Fixing CI

This commit is contained in:
Zoe Roux 2021-08-14 20:42:20 +02:00
commit e0f96d0b56
7 changed files with 24 additions and 21 deletions

View File

@ -31,12 +31,12 @@ jobs:
workflow: build.yml
path: ./artifacts
github_token: ${{secrets.GITHUB_TOKEN}}
- name: Public the common to nuget
- name: Public the abstractions to nuget
id: publish_nuget
uses: rohith/publish-nuget@v2
with:
PROJECT_FILE_PATH: Kyoo.Common/Kyoo.Common.csproj
PACKAGE_NAME: Kyoo.Common
PROJECT_FILE_PATH: Kyoo.Abstractions/Kyoo.Abstractions.csproj
PACKAGE_NAME: Kyoo.Abstractions
VERSION_REGEX: ^\s*<PackageVersion>(.*)<\/PackageVersion>\s*$
NUGET_KEY: ${{secrets.NUGET_API_KEY}}
INCLUDE_SYMBOLS: true

View File

@ -24,7 +24,7 @@ jobs:
- name: Build
run: |
dotnet build --no-restore '-p:SkipWebApp=true;SkipTranscoder=true' -p:CopyLocalLockFileAssemblies=true
cp ./Kyoo.Common/bin/Debug/net5.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll ./tests/Kyoo.Tests/bin/Debug/net5.0/
cp ./Kyoo.Abstractions/bin/Debug/net5.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll ./tests/Kyoo.Tests/bin/Debug/net5.0/
- name: Test
run: dotnet test --no-build '-p:CollectCoverage=true;CoverletOutputFormat=opencover'
env:

View File

@ -7,6 +7,7 @@ RUN cmake . && make -j
FROM node:alpine as webapp
WORKDIR /webapp
COPY Kyoo.WebApp .
WORKDIR /webapp/Front
RUN npm install
RUN npm run build -- --prod
@ -19,6 +20,6 @@ RUN apt-get update && apt-get install -y libavutil-dev libavcodec-dev libavforma
EXPOSE 5000
COPY --from=builder /opt/kyoo /usr/lib/kyoo
COPY --from=transcoder /transcoder/libtranscoder.so /usr/lib/kyoo
COPY --from=webapp /webapp/dist/* /usr/lib/kyoo/wwwroot/
COPY --from=webapp /webapp/Front/dist/* /usr/lib/kyoo/wwwroot/
CMD ["/usr/lib/kyoo/Kyoo", "/var/lib/kyoo"]

View File

@ -1,3 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
@ -12,17 +13,17 @@ namespace Kyoo.Abstractions.Models
/// <summary>
/// The link of the current page.
/// </summary>
public string This { get; }
public Uri This { get; }
/// <summary>
/// The link of the first page.
/// </summary>
public string First { get; }
public Uri First { get; }
/// <summary>
/// The link of the next page.
/// </summary>
public string Next { get; }
public Uri Next { get; }
/// <summary>
/// The number of items in the current page.
@ -42,7 +43,7 @@ namespace Kyoo.Abstractions.Models
/// <param name="this">The link of the current page.</param>
/// <param name="next">The link of the next page.</param>
/// <param name="first">The link of the first page.</param>
public Page(ICollection<T> items, string @this, string next, string first)
public Page(ICollection<T> items, Uri @this, Uri next, Uri first)
{
Items = items;
This = @this;
@ -58,21 +59,21 @@ namespace Kyoo.Abstractions.Models
/// <param name="query">The list of query strings of the current page</param>
/// <param name="limit">The number of items requested for the current page.</param>
public Page(ICollection<T> items,
string url,
Uri url,
Dictionary<string, string> query,
int limit)
{
Items = items;
This = url + query.ToQueryString();
This = new Uri(url + query.ToQueryString());
if (items.Count == limit && limit > 0)
{
query["afterID"] = items.Last().ID.ToString();
Next = url + query.ToQueryString();
Next = new Uri(url + query.ToQueryString());
}
query.Remove("afterID");
First = url + query.ToQueryString();
First = new Uri(url + query.ToQueryString());
}
}
}

View File

@ -1,4 +1,5 @@
using Kyoo.Abstractions.Models;
using System;
namespace Kyoo.Models.Options
{
@ -13,14 +14,14 @@ namespace Kyoo.Models.Options
public const string Path = "Basics";
/// <summary>
/// The internal url where the server will listen
/// The internal url where the server will listen. It supports globing.
/// </summary>
public string Url { get; set; } = "http://*:5000";
/// <summary>
/// The public url that will be used in items response and in authentication server host.
/// </summary>
public string PublicUrl { get; set; } = "http://localhost:5000/";
public Uri PublicUrl { get; set; } = new("http://localhost:5000");
/// <summary>
/// The path of the plugin directory.

View File

@ -15,9 +15,9 @@ namespace Kyoo.Api
public class CrudApi<T> : ControllerBase where T : class, IResource
{
private readonly IRepository<T> _repository;
protected readonly string BaseURL;
protected readonly Uri BaseURL;
public CrudApi(IRepository<T> repository, string baseURL)
public CrudApi(IRepository<T> repository, Uri baseURL)
{
_repository = repository;
BaseURL = baseURL;
@ -82,8 +82,8 @@ namespace Kyoo.Api
protected Page<TResult> Page<TResult>(ICollection<TResult> resources, int limit)
where TResult : IResource
{
return new(resources,
BaseURL + Request.Path,
return new Page<TResult>(resources,
new Uri(BaseURL, Request.Path),
Request.Query.ToDictionary(x => x.Key, x => x.Value.ToString(), StringComparer.InvariantCultureIgnoreCase),
limit);
}

View File

@ -19,7 +19,7 @@ namespace Kyoo.Api
public class LibraryItemApi : ControllerBase
{
private readonly ILibraryItemRepository _libraryItems;
private readonly string _baseURL;
private readonly Uri _baseURL;
public LibraryItemApi(ILibraryItemRepository libraryItems, IOptions<BasicOptions> options)
@ -43,7 +43,7 @@ namespace Kyoo.Api
new Pagination(limit, afterID));
return new Page<LibraryItem>(resources,
_baseURL + Request.Path,
new Uri(_baseURL + Request.Path),
Request.Query.ToDictionary(x => x.Key, x => x.Value.ToString(), StringComparer.InvariantCultureIgnoreCase),
limit);
}