tvl-depot/tvix/store/default.nix
Florian Klink 3816eaa5e9 feat(tvix/store): add simple integration test
This imports the docs folder into the tvix store, and ensures it comes
up with the same store path as Nix.

While we validate hashes in general through tvix-cli output path checks
already, it doesn't include the tvix-store CLI itself.

See https://cl.tvl.fyi/c/depot/+/9329/comment/339f0720_524f0104/
for context.

Change-Id: I239ce5b6a07cb962b242142ab716693359b8674c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9338
Reviewed-by: raitobezarius <tvl@lahfa.xyz>
Tested-by: BuildkiteCI
Reviewed-by: Connor Brewster <cbrewster@hey.com>
2023-09-15 21:00:54 +00:00

31 lines
907 B
Nix

{ depot, pkgs, ... }:
let
mkImportCheck = p: expectedPath: {
label = ":nix :import ${p} with tvix-store import";
needsOutput = true;
command = pkgs.writeShellScript "tvix-import-check" ''
export BLOB_SERVICE_ADDR=memory://
export DIRECTORY_SERVICE_ADDR=memory://
export PATH_INFO_SERVICE_ADDR=memory://
TVIX_STORE_OUTPUT=$(result/bin/tvix-store import ${p})
EXPECTED='${/* the vebatim expected Tvix output: */expectedPath}'
echo "tvix-store output: ''${TVIX_STORE_OUTPUT}"
if [ "$TVIX_STORE_OUTPUT" != "$EXPECTED" ]; then
echo "Correct would have been ''${EXPECTED}"
exit 1
fi
echo "Output was correct."
'';
};
in
(depot.tvix.crates.workspaceMembers.tvix-store.build.override {
runTests = true;
}).overrideAttrs (_: {
meta.ci.extraSteps = {
import-docs = (mkImportCheck "tvix/store/docs" ./docs);
};
})