1 parent
43347c1172
commit
6e15063502
122 files changed
+7848
-9828
No files matched your search
@@ -10,8 +10,64 @@
|
||||
"aarch64-linux"
|
||||
];
|
||||
forAllSystems = nixpkgs.lib.genAttrs systems;
|
||||
perSystem = system:
|
||||
let
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
groundSuite = pkgs.buildNpmPackage {
|
||||
pname = "kaptan-ground-suite";
|
||||
version = "0.1.0";
|
||||
src = ./ground-suite;
|
||||
npmDepsHash = "sha256-l217EpOz2oEBQK6bzJV0DSEdBkK7HIlB4a7JMF+FadA=";
|
||||
npmBuildScript = "check";
|
||||
PLAYWRIGHT_CHROMIUM_EXECUTABLE = "${pkgs.chromium}/bin/chromium";
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/libexec/ground-suite
|
||||
cp -R dist node_modules src public scripts tests package.json package-lock.json tsconfig.json tsconfig.app.json vite.config.ts vitest.config.ts playwright.config.ts $out/libexec/ground-suite/
|
||||
runHook postInstall
|
||||
'';
|
||||
};
|
||||
groundSuiteCommand = pkgs.writeShellApplication {
|
||||
name = "ground-suite";
|
||||
runtimeInputs = [ pkgs.nodejs pkgs.coreutils pkgs.chromium ];
|
||||
text = ''
|
||||
suite_root=${groundSuite}/libexec/ground-suite
|
||||
if [ "''${1:-}" = test ]; then
|
||||
shift
|
||||
test_root=$(mktemp -d -t kaptan-ground-suite-test.XXXXXX)
|
||||
trap 'rm -rf "$test_root"' EXIT
|
||||
cp -R "$suite_root" "$test_root/suite"
|
||||
chmod -R u+w "$test_root/suite"
|
||||
cd "$test_root/suite"
|
||||
export PLAYWRIGHT_CHROMIUM_EXECUTABLE=${pkgs.chromium}/bin/chromium
|
||||
npm test -- "$@"
|
||||
exit $?
|
||||
fi
|
||||
exec node "$suite_root/scripts/server.mjs" "$@"
|
||||
'';
|
||||
};
|
||||
in { inherit pkgs groundSuite groundSuiteCommand; };
|
||||
in
|
||||
{
|
||||
packages = forAllSystems (system:
|
||||
let values = perSystem system; in {
|
||||
ground-suite = values.groundSuite;
|
||||
default = values.groundSuite;
|
||||
});
|
||||
|
||||
apps = forAllSystems (system:
|
||||
let values = perSystem system; in {
|
||||
ground-suite = {
|
||||
type = "app";
|
||||
program = "${values.groundSuiteCommand}/bin/ground-suite";
|
||||
};
|
||||
});
|
||||
|
||||
checks = forAllSystems (system:
|
||||
let values = perSystem system; in {
|
||||
ground-suite = values.groundSuite;
|
||||
});
|
||||
|
||||
devShells = forAllSystems (system:
|
||||
let
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
@@ -30,6 +86,14 @@
|
||||
python
|
||||
];
|
||||
};
|
||||
ground-suite = pkgs.mkShell {
|
||||
packages = [ pkgs.nodejs ];
|
||||
shellHook = ''
|
||||
echo "Kaptan Ground Suite development shell (Node $(node --version), npm $(npm --version))"
|
||||
echo "Run: cd ground-suite && npm ci && npm run dev"
|
||||
echo "SIMULATED DATA ONLY"
|
||||
'';
|
||||
};
|
||||
});
|
||||
};
|
||||
}
|
||||
Reference in new issue
Block a user