Signed-off-by: Onur Özkan <work@onurozkan.dev>
This commit is contained in:
Onur Özkan committed 2026-08-17 18:51:40 +03:00
1 parent 43347c1172
commit 6e15063502
122 files changed
+7848 -9828

No files matched your search

+64
View File
@@ -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"
'';
};
});
};
}