about summary refs log tree commit diff
path: root/tvix/store/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'tvix/store/default.nix')
-rw-r--r--tvix/store/default.nix34
1 files changed, 34 insertions, 0 deletions
diff --git a/tvix/store/default.nix b/tvix/store/default.nix
new file mode 100644
index 000000000000..35d2a22bb2ce
--- /dev/null
+++ b/tvix/store/default.nix
@@ -0,0 +1,34 @@
+{ 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;
+  # virtiofs feature currently fails to build on Darwin.
+  # we however can ship it for non-darwin.
+  features = if pkgs.stdenv.isDarwin then [ "default" ] else [ "default" "virtiofs" ];
+}).overrideAttrs (_: {
+  meta.ci.extraSteps = {
+    import-docs = (mkImportCheck "tvix/store/docs" ./docs);
+  };
+})