Fix CI tests

This commit is contained in:
Rory&
2025-12-12 23:58:59 +01:00
parent 811c1a25a9
commit 8a785da5e4
3 changed files with 51 additions and 30 deletions
+29 -26
View File
@@ -54,36 +54,39 @@
python3
];
installPhase =
let
revsFile = pkgs.writeText "spacebar-server-rev.json" (builtins.toJSON {
rev = self.sourceInfo.rev or self.sourceInfo.dirtyRev;
shortRev = self.sourceInfo.shortRev or self.sourceInfo.dirtyShortRev;
lastModified = self.sourceInfo.lastModified;
});
in ''
runHook preInstall
# set -x
let
revsFile = pkgs.writeText "spacebar-server-rev.json" (
builtins.toJSON {
rev = self.sourceInfo.rev or self.sourceInfo.dirtyRev;
shortRev = self.sourceInfo.shortRev or self.sourceInfo.dirtyShortRev;
lastModified = self.sourceInfo.lastModified;
}
);
in
''
runHook preInstall
# set -x
# remove packages not needed for production, or at least try to...
npm prune --omit dev --no-save $npmInstallFlags "''${npmInstallFlagsArray[@]}" $npmFlags "''${npmFlagsArray[@]}"
${./nix/trimNodeModules.sh}
# remove packages not needed for production, or at least try to...
npm prune --omit dev --no-save $npmInstallFlags "''${npmInstallFlagsArray[@]}" $npmFlags "''${npmFlagsArray[@]}"
${./nix/trimNodeModules.sh}
# Copy outputs
echo "Installing package into $out"
mkdir -p $out
cp -r assets dist node_modules package.json $out/
cp ${revsFile} $out/.rev
# Copy outputs
echo "Installing package into $out"
mkdir -p $out
cp -r assets dist node_modules package.json $out/
cp ${revsFile} $out/.rev
# Create wrappers for start scripts
echo "Creating wrappers for start scripts"
for i in dist/**/start.js
do
makeWrapper ${pkgs.nodejs_24}/bin/node $out/bin/start-`dirname ''${i/dist\//}` --prefix NODE_PATH : $out/node_modules --add-flags --enable-source-maps --add-flags $out/$i
done
# Create wrappers for start scripts
echo "Creating wrappers for start scripts"
for i in dist/**/start.js
do
makeWrapper ${pkgs.nodejs_24}/bin/node $out/bin/start-`dirname ''${i/dist\//}` --prefix NODE_PATH : $out/node_modules --add-flags --enable-source-maps --add-flags $out/$i
done
# set +x
runHook postInstall
'';
# set +x
runHook postInstall
'';
passthru.tests = pkgs.testers.runNixOSTest (import ./nix/tests/test-bundle-starts.nix self);
};
+8 -1
View File
@@ -7,7 +7,14 @@ self:
nodes.machine = {
imports = [ self.nixosModules.default ];
services.spacebarchat-server.enable = true;
services.spacebarchat-server = {
enable = true;
settings = {
api = { endpointPublic = "http://localhost:3001/api/v9/"; };
cdn = { endpointPublic = "http://localhost:3001/"; endpointPrivate = "http://localhost:3001/"; };
gateway = { endpointPublic = "ws://localhost:3001/"; };
};
};
};
testScript = ''
+14 -3
View File
@@ -23,10 +23,21 @@
const { spawn } = require("child_process");
const path = require("path");
const fs = require("fs");
const server = spawn("node", [
path.join(__dirname, "..", "dist", "bundle", "start.js"),
]);
const cfgFile = path.join(__dirname, "test_config.json");
process.env.CONFIG_PATH = cfgFile;
fs.writeFileSync(
cfgFile,
JSON.stringify({
api: { endpointPublic: "http://localhost:3001/api/v9/" },
cdn: { endpointPublic: "http://localhost:3001/", endpointPrivate: "http://localhost:3001/" },
gateway: { endpointPublic: "ws://localhost:3001/" },
}),
);
const server = spawn("node", [path.join(__dirname, "..", "dist", "bundle", "start.js")]);
server.stdout.on("data", (data) => {
process.stdout.write(data);