mirror of
https://github.com/spacebarchat/server.git
synced 2026-03-30 13:55:39 +00:00
129 lines
3.9 KiB
Nix
129 lines
3.9 KiB
Nix
{
|
|
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;
|
|
makeNupkg =
|
|
{
|
|
name,
|
|
nugetDeps ? null,
|
|
projectReferences ? [ ],
|
|
projectFile ? "${name}/${name}.csproj",
|
|
runtimeId ? null,
|
|
useAppHost ? null,
|
|
packNupkg ? true,
|
|
}@args:
|
|
pkgs.buildDotnetModule rec {
|
|
inherit
|
|
projectReferences
|
|
nugetDeps
|
|
projectFile
|
|
runtimeId
|
|
useAppHost
|
|
;
|
|
|
|
pname = "${name}";
|
|
version = "1.0.0-" + rVersion;
|
|
dotnetPackFlags = [
|
|
"--include-symbols"
|
|
"--include-source"
|
|
"--version-suffix ${rVersion}"
|
|
];
|
|
# dotnetFlags = [ "-v:diag" ];
|
|
dotnet-sdk = pkgs.dotnet-sdk_10;
|
|
dotnet-runtime = pkgs.dotnet-aspnetcore_10;
|
|
src = pkgs.lib.cleanSource ./.;
|
|
packNupkg = true;
|
|
meta = with pkgs.lib; {
|
|
description = "Spacebar Server, Typescript Edition (C# extensions)";
|
|
homepage = "https://github.com/spacebarchat/server";
|
|
license = licenses.agpl3Plus;
|
|
maintainers = with maintainers; [ RorySys ];
|
|
};
|
|
};
|
|
in
|
|
{
|
|
packages =
|
|
let
|
|
proj = self.packages.${system};
|
|
in
|
|
{
|
|
Spacebar-Db = makeNupkg {
|
|
name = "Spacebar.Db";
|
|
nugetDeps = Spacebar.Db/deps.json;
|
|
};
|
|
Spacebar-AdminApi-Models = makeNupkg {
|
|
name = "Spacebar.AdminApi.Models";
|
|
};
|
|
Spacebar-ConfigModel = makeNupkg {
|
|
name = "Spacebar.ConfigModel";
|
|
};
|
|
Spacebar-CleanSettingsRows = makeNupkg {
|
|
name = "Spacebar.CleanSettingsRows";
|
|
nugetDeps = Spacebar.CleanSettingsRows/deps.json;
|
|
packNupkg = false;
|
|
projectReferences = [ proj.Spacebar-Db ];
|
|
};
|
|
Spacebar-AdminApi = makeNupkg {
|
|
name = "Spacebar.AdminApi";
|
|
nugetDeps = Spacebar.AdminApi/deps.json;
|
|
packNupkg = false;
|
|
projectReferences = [
|
|
proj.Spacebar-AdminApi-Models
|
|
proj.Spacebar-Db
|
|
];
|
|
|
|
};
|
|
# Spacebar-AdminApi-TestClient = makeNupkg {
|
|
# name = "Spacebar.AdminApi.TestClient";
|
|
# projectFile = "Utilities/Spacebar.AdminApi.TestClient/Spacebar.AdminApi.TestClient.csproj";
|
|
# nugetDeps = Utilities/Spacebar.AdminApi.TestClient/deps.json;
|
|
# projectReferences = [
|
|
# proj.Spacebar-AdminApi-Models
|
|
# ];
|
|
## runtimeId = "browser-wasm";
|
|
## useAppHost = false;
|
|
# };
|
|
};
|
|
|
|
containers.docker.admin-api = pkgs.dockerTools.buildLayeredImage {
|
|
name = "spacebar-server-ts-admin-api";
|
|
tag = builtins.replaceStrings [ "+" ] [ "_" ] self.packages.${system}.Spacebar-AdminApi.version;
|
|
contents = [ self.packages.${system}.Spacebar-AdminApi ];
|
|
config = {
|
|
Cmd = [ "${self.outputs.packages.${system}.Spacebar-AdminApi}/bin/Spacebar.AdminApi" ];
|
|
Expose = [ "3001" ];
|
|
};
|
|
};
|
|
}
|
|
)
|
|
// {
|
|
# 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;
|
|
};
|
|
};
|
|
}
|