mirror of
https://github.com/versia-pub/server.git
synced 2025-12-06 08:28:19 +01:00
build: 🏗️ Package Worker
This commit is contained in:
parent
5a4ce29206
commit
1beb18e321
|
|
@ -8,7 +8,7 @@ await $`rm -rf dist && mkdir dist`;
|
||||||
|
|
||||||
await build({
|
await build({
|
||||||
entrypoints: [
|
entrypoints: [
|
||||||
"entrypoints/worker/index.ts",
|
"worker.ts",
|
||||||
// HACK: Include to avoid cyclical import errors
|
// HACK: Include to avoid cyclical import errors
|
||||||
"config.ts",
|
"config.ts",
|
||||||
],
|
],
|
||||||
|
|
@ -21,13 +21,13 @@ await build({
|
||||||
buildSpinner.text = "Transforming";
|
buildSpinner.text = "Transforming";
|
||||||
|
|
||||||
// Copy Drizzle migrations to dist
|
// Copy Drizzle migrations to dist
|
||||||
await $`cp -r drizzle dist/drizzle`;
|
await $`cp -rL drizzle dist/drizzle`;
|
||||||
|
|
||||||
// Copy Sharp to dist
|
// Copy Sharp to dist
|
||||||
await $`mkdir -p dist/node_modules/@img`;
|
await $`mkdir -p dist/node_modules/@img`;
|
||||||
await $`cp -r node_modules/@img/sharp-libvips-linuxmusl-* dist/node_modules/@img`;
|
await $`cp -rL node_modules/@img/sharp-libvips-linux* dist/node_modules/@img`;
|
||||||
await $`cp -r node_modules/@img/sharp-linuxmusl-* dist/node_modules/@img`;
|
await $`cp -rL node_modules/@img/sharp-linux* dist/node_modules/@img`;
|
||||||
|
|
||||||
await $`cp -r node_modules/detect-libc dist/node_modules/`;
|
await $`cp -rL node_modules/detect-libc dist/node_modules/`;
|
||||||
|
|
||||||
buildSpinner.stop();
|
buildSpinner.stop();
|
||||||
|
|
|
||||||
|
|
@ -14,8 +14,11 @@
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
overlays.default = final: prev: {
|
overlays.default = final: prev: rec {
|
||||||
versia-server = final.callPackage ./nix/package.nix {};
|
versia-server = final.callPackage ./nix/package.nix {};
|
||||||
|
versia-server-worker = final.callPackage ./nix/package-worker.nix {
|
||||||
|
inherit versia-server;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
// flake-utils.lib.eachSystem ["x86_64-linux" "aarch64-linux"] (system: let
|
// flake-utils.lib.eachSystem ["x86_64-linux" "aarch64-linux"] (system: let
|
||||||
|
|
@ -25,7 +28,7 @@
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
packages = {
|
packages = {
|
||||||
inherit (pkgs) versia-server;
|
inherit (pkgs) versia-server versia-server-worker;
|
||||||
default = self.packages.${system}.versia-server;
|
default = self.packages.${system}.versia-server;
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
|
||||||
30
nix/fix-build-spinner-worker.patch
Normal file
30
nix/fix-build-spinner-worker.patch
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
diff --git a/build-worker.ts b/build-worker.ts
|
||||||
|
index 5e2a6d5a..ee66871c 100644
|
||||||
|
--- a/build-worker.ts
|
||||||
|
+++ b/build-worker.ts
|
||||||
|
@@ -1,8 +1,8 @@
|
||||||
|
import { build } from "bun";
|
||||||
|
import { $ } from "bun";
|
||||||
|
-import ora from "ora";
|
||||||
|
+// import ora from "ora";
|
||||||
|
|
||||||
|
-const buildSpinner = ora("Building").start();
|
||||||
|
+// const buildSpinner = ora("Building").start();
|
||||||
|
|
||||||
|
await $`rm -rf dist && mkdir dist`;
|
||||||
|
|
||||||
|
@@ -18,7 +18,7 @@ await build({
|
||||||
|
minify: false,
|
||||||
|
});
|
||||||
|
|
||||||
|
-buildSpinner.text = "Transforming";
|
||||||
|
+// buildSpinner.text = "Transforming";
|
||||||
|
|
||||||
|
// Copy Drizzle migrations to dist
|
||||||
|
await $`cp -r drizzle dist/drizzle`;
|
||||||
|
@@ -30,4 +30,4 @@ await $`cp -r node_modules/@img/sharp-linuxmusl-* dist/node_modules/@img`;
|
||||||
|
|
||||||
|
await $`cp -r node_modules/detect-libc dist/node_modules/`;
|
||||||
|
|
||||||
|
-buildSpinner.stop();
|
||||||
|
+// buildSpinner.stop();
|
||||||
21
nix/package-worker.nix
Normal file
21
nix/package-worker.nix
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
# Simply edit the server to run "bun run build:worker" instead of "bun run build"
|
||||||
|
{versia-server}:
|
||||||
|
versia-server.overrideAttrs (oldAttrs: {
|
||||||
|
pname = "${oldAttrs.pname}-worker";
|
||||||
|
buildPhase = ''
|
||||||
|
runHook preBuild
|
||||||
|
|
||||||
|
bun run build:worker
|
||||||
|
|
||||||
|
runHook postBuild
|
||||||
|
'';
|
||||||
|
entrypointPath = "worker.js";
|
||||||
|
|
||||||
|
patches = [./fix-build-spinner-worker.patch];
|
||||||
|
|
||||||
|
meta =
|
||||||
|
oldAttrs.meta
|
||||||
|
// {
|
||||||
|
description = "${oldAttrs.meta.description} (worker)";
|
||||||
|
};
|
||||||
|
})
|
||||||
|
|
@ -44,6 +44,8 @@ in
|
||||||
runHook postBuild
|
runHook postBuild
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
entrypointPath = "index.js";
|
||||||
|
|
||||||
installPhase = let
|
installPhase = let
|
||||||
libPath = lib.makeLibraryPath [
|
libPath = lib.makeLibraryPath [
|
||||||
vips
|
vips
|
||||||
|
|
@ -60,7 +62,7 @@ in
|
||||||
cp -r dist $out/${finalAttrs.pname}
|
cp -r dist $out/${finalAttrs.pname}
|
||||||
|
|
||||||
makeWrapper ${lib.getExe bun} $out/bin/${finalAttrs.pname} \
|
makeWrapper ${lib.getExe bun} $out/bin/${finalAttrs.pname} \
|
||||||
--add-flags "run $out/${finalAttrs.pname}/index.js" \
|
--add-flags "run $out/${finalAttrs.pname}/${finalAttrs.entrypointPath}" \
|
||||||
--set NODE_PATH $out/${finalAttrs.pname}/node_modules \
|
--set NODE_PATH $out/${finalAttrs.pname}/node_modules \
|
||||||
--prefix PATH : ${binPath} \
|
--prefix PATH : ${binPath} \
|
||||||
--prefix LD_LIBRARY_PATH : ${libPath}
|
--prefix LD_LIBRARY_PATH : ${libPath}
|
||||||
|
|
|
||||||
|
|
@ -5,4 +5,4 @@ await setupDatabase();
|
||||||
await deleteOldTestUsers();
|
await deleteOldTestUsers();
|
||||||
|
|
||||||
// Start workers
|
// Start workers
|
||||||
await import("~/entrypoints/worker/index.ts");
|
await import("~/worker.ts");
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue