about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--tvix/store/default.nix32
1 files changed, 29 insertions, 3 deletions
diff --git a/tvix/store/default.nix b/tvix/store/default.nix
index ec04629ab24b..e324866a7f69 100644
--- a/tvix/store/default.nix
+++ b/tvix/store/default.nix
@@ -1,5 +1,31 @@
-{ depot, ... }:
+{ depot, pkgs, ... }:
 
-depot.tvix.crates.workspaceMembers.tvix-store.build.override {
+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);
+  };
+})