514edc2ea5
This makes BLOB_SERVICE_ADDR configurable, and creates a flavor setting it to objectstore+file://$PWD/blobs. Change-Id: I68c21367f83f68b4dee701c5678f438c7d8fbe43 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11137 Autosubmit: flokli <flokli@flokli.de> Reviewed-by: Connor Brewster <cbrewster@hey.com> Tested-by: BuildkiteCI
40 lines
1.3 KiB
Nix
40 lines
1.3 KiB
Nix
{ depot, pkgs, ... }:
|
|
|
|
let
|
|
# Seed a tvix-store with the tvix docs, then start a VM, ask it to list all
|
|
# files in /nix/store, and ensure the store path is present, which acts as a
|
|
# nice smoketest.
|
|
mkBootTest = blobServiceAddr:
|
|
pkgs.stdenv.mkDerivation {
|
|
name = "run-vm";
|
|
nativeBuildInputs = [
|
|
depot.tvix.store
|
|
depot.tvix.boot.runVM
|
|
];
|
|
buildCommand = ''
|
|
touch $out
|
|
|
|
# Configure tvix to put data in the local working directory
|
|
export BLOB_SERVICE_ADDR=${blobServiceAddr}
|
|
export DIRECTORY_SERVICE_ADDR=sled://$PWD/directories.sled
|
|
export PATH_INFO_SERVICE_ADDR=sled://$PWD/pathinfo.sled
|
|
|
|
# Seed the tvix store with some data
|
|
# Create a `docs` directory with the contents from ../docs
|
|
# Make sure it still is called "docs" when calling import, so we can
|
|
# predict the store path.
|
|
cp -R ${../../docs} docs
|
|
outpath=$(tvix-store import docs)
|
|
|
|
echo "Store contents imported to $outpath"
|
|
|
|
CH_CMDLINE="tvix.find" run-tvix-vm 2>&1 | tee output.txt
|
|
grep ${../../docs} output.txt
|
|
'';
|
|
requiredSystemFeatures = [ "kvm" ];
|
|
};
|
|
in
|
|
depot.nix.readTree.drvTargets {
|
|
docs-sled = (mkBootTest "sled://$PWD/blobs.sled");
|
|
docs-objectstore-local = (mkBootTest "objectstore+file://$PWD/blobs");
|
|
}
|