mirror of
https://github.com/spacebarchat/server.git
synced 2026-06-06 19:51:44 +00:00
Add nix packages for all worker variants
This commit is contained in:
@@ -5,6 +5,7 @@ using ArcaneLibs;
|
||||
using ImageMagick;
|
||||
using Spacebar.AdminApi.TestClient.Services.Helpers;
|
||||
using Spacebar.Cdn.Worker;
|
||||
using Spacebar.Interop.Cdn.Abstractions;
|
||||
|
||||
var builder = WebApplication.CreateBuilder(args);
|
||||
|
||||
@@ -56,6 +57,9 @@ MagickNET.Initialize();
|
||||
|
||||
// builder.WebHost.ConfigureKestrel(opts => opts.ListenUnixSocket(Environment.GetEnvironmentVariable("SOCKET_PATH")!));
|
||||
|
||||
builder.Services.AddSingleton<IFileSource>(new FilesystemFileSource(Environment.GetEnvironmentVariable("STORAGE_PATH") ?? throw new InvalidOperationException("STORAGE_PATH not set!")));
|
||||
// builder.Services.AddSingleton<DiscordImageResizeService>();
|
||||
|
||||
builder.Services.AddControllers();
|
||||
var app = builder.Build();
|
||||
app.MapControllers();
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
[
|
||||
{
|
||||
"pname": "ArcaneLibs",
|
||||
"version": "1.0.1-preview.20260126-091403",
|
||||
"hash": "sha256-CSmNE16nDi05qyDAcJR+8SqQQ2ReAeX0+/dRP3WpNsg="
|
||||
},
|
||||
{
|
||||
"pname": "Magick.NET-Q16-HDRI-AnyCPU",
|
||||
"version": "14.11.1",
|
||||
"hash": "sha256-WH7GgpQtkk9FpEz3xwcERrVYq6Bz5SrtjakjFRgHuII="
|
||||
},
|
||||
{
|
||||
"pname": "Magick.NET.Core",
|
||||
"version": "14.11.1",
|
||||
"hash": "sha256-984jXKS/y2602DgaXsfDh9TFOhpyAF/gHZG8BGQXljA="
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,17 @@
|
||||
[
|
||||
{
|
||||
"pname": "ArcaneLibs",
|
||||
"version": "1.0.1-preview.20260126-091403",
|
||||
"hash": "sha256-CSmNE16nDi05qyDAcJR+8SqQQ2ReAeX0+/dRP3WpNsg="
|
||||
},
|
||||
{
|
||||
"pname": "Magick.NET-Q16-HDRI-OpenMP-arm64",
|
||||
"version": "14.11.1",
|
||||
"hash": "sha256-kN/hpOiLTOD5jKUaWXz8nCoOTwP4lB9JczdodZZIvyc="
|
||||
},
|
||||
{
|
||||
"pname": "Magick.NET.Core",
|
||||
"version": "14.11.1",
|
||||
"hash": "sha256-984jXKS/y2602DgaXsfDh9TFOhpyAF/gHZG8BGQXljA="
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,17 @@
|
||||
[
|
||||
{
|
||||
"pname": "ArcaneLibs",
|
||||
"version": "1.0.1-preview.20260126-091403",
|
||||
"hash": "sha256-CSmNE16nDi05qyDAcJR+8SqQQ2ReAeX0+/dRP3WpNsg="
|
||||
},
|
||||
{
|
||||
"pname": "Magick.NET-Q16-HDRI-OpenMP-x64",
|
||||
"version": "14.11.1",
|
||||
"hash": "sha256-mf/bRfdiQi96AZKDDBvbSMFA2YSQDMdmhcrF0Vlvs/8="
|
||||
},
|
||||
{
|
||||
"pname": "Magick.NET.Core",
|
||||
"version": "14.11.1",
|
||||
"hash": "sha256-984jXKS/y2602DgaXsfDh9TFOhpyAF/gHZG8BGQXljA="
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,17 @@
|
||||
[
|
||||
{
|
||||
"pname": "ArcaneLibs",
|
||||
"version": "1.0.1-preview.20260126-091403",
|
||||
"hash": "sha256-CSmNE16nDi05qyDAcJR+8SqQQ2ReAeX0+/dRP3WpNsg="
|
||||
},
|
||||
{
|
||||
"pname": "Magick.NET-Q16-AnyCPU",
|
||||
"version": "14.11.1",
|
||||
"hash": "sha256-GbCGSCB9iB9YA9Xmht0vPAlfJMY/tgGpNajorQv1fl4="
|
||||
},
|
||||
{
|
||||
"pname": "Magick.NET.Core",
|
||||
"version": "14.11.1",
|
||||
"hash": "sha256-984jXKS/y2602DgaXsfDh9TFOhpyAF/gHZG8BGQXljA="
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,17 @@
|
||||
[
|
||||
{
|
||||
"pname": "ArcaneLibs",
|
||||
"version": "1.0.1-preview.20260126-091403",
|
||||
"hash": "sha256-CSmNE16nDi05qyDAcJR+8SqQQ2ReAeX0+/dRP3WpNsg="
|
||||
},
|
||||
{
|
||||
"pname": "Magick.NET-Q16-OpenMP-arm64",
|
||||
"version": "14.11.1",
|
||||
"hash": "sha256-T6KmNQhLxiLtb+10A6cpXl5G0+mKhtOiqjyF0T94fs0="
|
||||
},
|
||||
{
|
||||
"pname": "Magick.NET.Core",
|
||||
"version": "14.11.1",
|
||||
"hash": "sha256-984jXKS/y2602DgaXsfDh9TFOhpyAF/gHZG8BGQXljA="
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,17 @@
|
||||
[
|
||||
{
|
||||
"pname": "ArcaneLibs",
|
||||
"version": "1.0.1-preview.20260126-091403",
|
||||
"hash": "sha256-CSmNE16nDi05qyDAcJR+8SqQQ2ReAeX0+/dRP3WpNsg="
|
||||
},
|
||||
{
|
||||
"pname": "Magick.NET-Q16-OpenMP-x64",
|
||||
"version": "14.11.1",
|
||||
"hash": "sha256-5VCBrKTGedHkJWJOp8w4B5uiPfT/ZsYlVrC3FYbHHbA="
|
||||
},
|
||||
{
|
||||
"pname": "Magick.NET.Core",
|
||||
"version": "14.11.1",
|
||||
"hash": "sha256-984jXKS/y2602DgaXsfDh9TFOhpyAF/gHZG8BGQXljA="
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,17 @@
|
||||
[
|
||||
{
|
||||
"pname": "ArcaneLibs",
|
||||
"version": "1.0.1-preview.20260126-091403",
|
||||
"hash": "sha256-CSmNE16nDi05qyDAcJR+8SqQQ2ReAeX0+/dRP3WpNsg="
|
||||
},
|
||||
{
|
||||
"pname": "Magick.NET-Q8-AnyCPU",
|
||||
"version": "14.11.1",
|
||||
"hash": "sha256-yRecBHZiMcJHR3dkvfGqthvMo9qlvvcxF6hIdXs/wAM="
|
||||
},
|
||||
{
|
||||
"pname": "Magick.NET.Core",
|
||||
"version": "14.11.1",
|
||||
"hash": "sha256-984jXKS/y2602DgaXsfDh9TFOhpyAF/gHZG8BGQXljA="
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,17 @@
|
||||
[
|
||||
{
|
||||
"pname": "ArcaneLibs",
|
||||
"version": "1.0.1-preview.20260126-091403",
|
||||
"hash": "sha256-CSmNE16nDi05qyDAcJR+8SqQQ2ReAeX0+/dRP3WpNsg="
|
||||
},
|
||||
{
|
||||
"pname": "Magick.NET-Q8-OpenMP-arm64",
|
||||
"version": "14.11.1",
|
||||
"hash": "sha256-Nt9RNaLpx+VYK+TgdB/GaIEYfBstWJKZQas8ixGfmtM="
|
||||
},
|
||||
{
|
||||
"pname": "Magick.NET.Core",
|
||||
"version": "14.11.1",
|
||||
"hash": "sha256-984jXKS/y2602DgaXsfDh9TFOhpyAF/gHZG8BGQXljA="
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,17 @@
|
||||
[
|
||||
{
|
||||
"pname": "ArcaneLibs",
|
||||
"version": "1.0.1-preview.20260126-091403",
|
||||
"hash": "sha256-CSmNE16nDi05qyDAcJR+8SqQQ2ReAeX0+/dRP3WpNsg="
|
||||
},
|
||||
{
|
||||
"pname": "Magick.NET-Q8-OpenMP-x64",
|
||||
"version": "14.11.1",
|
||||
"hash": "sha256-OHuPBwGFCz8nOsPc1NgUHAieCf8FE1ZjdAVpTfAo5X8="
|
||||
},
|
||||
{
|
||||
"pname": "Magick.NET.Core",
|
||||
"version": "14.11.1",
|
||||
"hash": "sha256-984jXKS/y2602DgaXsfDh9TFOhpyAF/gHZG8BGQXljA="
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,101 @@
|
||||
{
|
||||
self,
|
||||
nixpkgs,
|
||||
flake-utils,
|
||||
}:
|
||||
let
|
||||
rVersion =
|
||||
let
|
||||
rev = self.sourceInfo.shortRev or self.sourceInfo.dirtyShortRev;
|
||||
date = builtins.substring 0 8 self.sourceInfo.lastModifiedDate;
|
||||
time = builtins.substring 8 6 self.sourceInfo.lastModifiedDate;
|
||||
in
|
||||
"preview.${date}-${time}"; # +${rev}";
|
||||
in
|
||||
flake-utils.lib.eachSystem flake-utils.lib.allSystems (
|
||||
system:
|
||||
let
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
};
|
||||
lib = pkgs.lib;
|
||||
buildSpacebarDotnetModule = import ../../../nix/lib/buildSpacebarDotnetModule.nix { inherit pkgs rVersion; };
|
||||
in
|
||||
{
|
||||
packages =
|
||||
let
|
||||
proj = self.packages.${system};
|
||||
sysArch = (lib.systems.elaborate system).linuxArch;
|
||||
cdnCsWorkerArch =
|
||||
if sysArch == "x86_64" then
|
||||
"x86_64"
|
||||
else if sysArch == "aarch64" then
|
||||
"aarch64"
|
||||
else
|
||||
"AnyCPU";
|
||||
makeWorkerPackage =
|
||||
arch: variant:
|
||||
buildSpacebarDotnetModule {
|
||||
name = "Spacebar.Cdn.Worker-${variant}.${arch}";
|
||||
nugetDeps = ./deps.${variant}.${arch}.json;
|
||||
projectFile = "Spacebar.Cdn.Worker.${variant}.${arch}.csproj";
|
||||
srcRoot = ./.;
|
||||
packNupkg = false;
|
||||
projectReferences = [
|
||||
proj.Spacebar-Interop-Cdn-Abstractions
|
||||
];
|
||||
}
|
||||
// {
|
||||
__extraProjectPrefix = "Spacebar.Cdn.Worker";
|
||||
};
|
||||
in
|
||||
{
|
||||
Spacebar-Cdn-Worker-x86_64-Q16-HDRI = makeWorkerPackage "x86_64" "Q16-HDRI";
|
||||
Spacebar-Cdn-Worker-x86_64-Q16 = makeWorkerPackage "x86_64" "Q16";
|
||||
Spacebar-Cdn-Worker-x86_64-Q8 = makeWorkerPackage "x86_64" "Q8";
|
||||
|
||||
Spacebar-Cdn-Worker-aarch64-Q16-HDRI = makeWorkerPackage "aarch64" "Q16-HDRI";
|
||||
Spacebar-Cdn-Worker-aarch64-Q16 = makeWorkerPackage "aarch64" "Q16";
|
||||
Spacebar-Cdn-Worker-aarch64-Q8 = makeWorkerPackage "aarch64" "Q8";
|
||||
|
||||
Spacebar-Cdn-Worker-AnyCPU-Q16-HDRI = makeWorkerPackage "AnyCPU" "Q16-HDRI";
|
||||
Spacebar-Cdn-Worker-AnyCPU-Q16 = makeWorkerPackage "AnyCPU" "Q16";
|
||||
Spacebar-Cdn-Worker-AnyCPU-Q8 = makeWorkerPackage "AnyCPU" "Q8";
|
||||
};
|
||||
|
||||
containers.docker =
|
||||
let
|
||||
makeContainer =
|
||||
variant:
|
||||
(pkgs.dockerTools.buildLayeredImage {
|
||||
name = "spacebar-server-cdn-cs-worker-${lib.toLower variant}";
|
||||
tag = builtins.replaceStrings [ "+" ] [ "_" ] self.packages.${system}."Spacebar-Cdn-Worker-${variant}".version;
|
||||
contents = [ self.packages.${system}."Spacebar-Cdn-Worker-${variant}" ];
|
||||
config = {
|
||||
Cmd = [ "${self.packages.${system}."Spacebar-Cdn-Worker-${variant}"}/bin/Spacebar.Cdn.Worker" ];
|
||||
Expose = [ "5000" ];
|
||||
};
|
||||
});
|
||||
in
|
||||
{
|
||||
Spacebar-Cdn-Worker-Q16-HDRI = makeContainer "Q16-HDRI";
|
||||
Spacebar-Cdn-Worker-Q16 = makeContainer "Q16";
|
||||
Spacebar-Cdn-Worker-Q8 = makeContainer "Q8";
|
||||
};
|
||||
}
|
||||
)
|
||||
#// {
|
||||
# # nixosModules.default = import ./nix/modules/default self;
|
||||
# checks =
|
||||
# let
|
||||
# pkgs = import nixpkgs { system = "x86_64-linux"; };
|
||||
# in
|
||||
# pkgs.lib.recursiveUpdate (pkgs.lib.attrsets.unionOfDisjoint { } self.packages) {
|
||||
# x86_64-linux = {
|
||||
# # spacebar-server-tests = self.packages.x86_64-linux.default.passthru.tests;
|
||||
# docker-admin-api = self.containers.x86_64-linux.docker.admin-api;
|
||||
# docker-offload = self.containers.x86_64-linux.docker.offload;
|
||||
# docker-cdn-cs = self.containers.x86_64-linux.docker.cdn-cs;
|
||||
# };
|
||||
# };
|
||||
#}
|
||||
@@ -0,0 +1,44 @@
|
||||
{ pkgs }:
|
||||
{
|
||||
name,
|
||||
nugetDeps ? null,
|
||||
projectReferences ? [ ],
|
||||
projectFile ? "${name}/${name}.csproj",
|
||||
runtimeId ? null,
|
||||
useAppHost ? null,
|
||||
packNupkg ? true,
|
||||
srcRoot ? ./.,
|
||||
}@args:
|
||||
pkgs.buildDotnetModule rec {
|
||||
inherit
|
||||
projectReferences
|
||||
nugetDeps
|
||||
projectFile
|
||||
runtimeId
|
||||
useAppHost
|
||||
srcRoot
|
||||
packNupkg
|
||||
;
|
||||
|
||||
pname = "${name}";
|
||||
version = "1.0.0-" + rVersion;
|
||||
dotnetPackFlags = [
|
||||
"--include-symbols"
|
||||
"--include-source"
|
||||
"--version-suffix ${rVersion}"
|
||||
];
|
||||
# dotnetFlags = [ "-v:n" ]; # diag
|
||||
dotnet-sdk = pkgs.dotnet-sdk_10;
|
||||
dotnet-runtime = pkgs.dotnet-aspnetcore_10;
|
||||
src = pkgs.lib.cleanSource srcRoot;
|
||||
meta = with pkgs.lib; {
|
||||
description = "Spacebar Server, Typescript Edition (C# extensions)";
|
||||
homepage = "https://github.com/spacebarchat/server";
|
||||
license = licenses.agpl3Plus;
|
||||
maintainers = with maintainers; [ RorySys ];
|
||||
mainProgram = name;
|
||||
};
|
||||
}
|
||||
// {
|
||||
__nugetDeps = args.nugetDeps;
|
||||
}
|
||||
Reference in New Issue
Block a user