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({
|
||||
entrypoints: [
|
||||
"entrypoints/worker/index.ts",
|
||||
"worker.ts",
|
||||
// HACK: Include to avoid cyclical import errors
|
||||
"config.ts",
|
||||
],
|
||||
|
|
@ -21,13 +21,13 @@ await build({
|
|||
buildSpinner.text = "Transforming";
|
||||
|
||||
// Copy Drizzle migrations to dist
|
||||
await $`cp -r drizzle dist/drizzle`;
|
||||
await $`cp -rL drizzle dist/drizzle`;
|
||||
|
||||
// Copy Sharp to dist
|
||||
await $`mkdir -p dist/node_modules/@img`;
|
||||
await $`cp -r node_modules/@img/sharp-libvips-linuxmusl-* dist/node_modules/@img`;
|
||||
await $`cp -r node_modules/@img/sharp-linuxmusl-* dist/node_modules/@img`;
|
||||
await $`cp -rL node_modules/@img/sharp-libvips-linux* 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();
|
||||
|
|
|
|||
|
|
@ -14,8 +14,11 @@
|
|||
...
|
||||
}:
|
||||
{
|
||||
overlays.default = final: prev: {
|
||||
overlays.default = final: prev: rec {
|
||||
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
|
||||
|
|
@ -25,7 +28,7 @@
|
|||
};
|
||||
in {
|
||||
packages = {
|
||||
inherit (pkgs) versia-server;
|
||||
inherit (pkgs) versia-server versia-server-worker;
|
||||
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
|
||||
'';
|
||||
|
||||
entrypointPath = "index.js";
|
||||
|
||||
installPhase = let
|
||||
libPath = lib.makeLibraryPath [
|
||||
vips
|
||||
|
|
@ -60,7 +62,7 @@ in
|
|||
cp -r dist $out/${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 \
|
||||
--prefix PATH : ${binPath} \
|
||||
--prefix LD_LIBRARY_PATH : ${libPath}
|
||||
|
|
|
|||
|
|
@ -5,4 +5,4 @@ await setupDatabase();
|
|||
await deleteOldTestUsers();
|
||||
|
||||
// Start workers
|
||||
await import("~/entrypoints/worker/index.ts");
|
||||
await import("~/worker.ts");
|
||||
|
|
|
|||
Loading…
Reference in a new issue