Nix如何使用替代存储路径进行CI缓存

问题描述 投票:2回答:1

许多CI提供程序为您提供了一个目录,该目录的内容在各个版本之间保留,您可以将其用作缓存。存储在其他位置的所有内容都会丢失。这意味着放置在nix存储区(/nix/store)中的nix构建期间创建的任何伪像都将丢失。我试图弄清楚如何说服nix在全局/nix/store上更喜欢其他缓存目录。但是缺少文档。

到目前为止我尝试过的:

  • file:///the/path添加到替代者,然后nix copy --to该路径。但是我发现nix仅在该目录中创建一些元数据文件,并将实际派生复制到/nix/store中。那不是我想要的。
  • 使用local?root=/the/path代替file:// url(顺便说一句,此语法在任何地方都没有记录,我只在一个github问题中找到了它!)。这使nix将整个派生文件复制到该文件夹​​,但是我无法弄清楚如何说服nix-build在构建过程中实际咨询该商店。
nix
1个回答
1
投票

是否有可能沿nix run --store ~/my-nix nixpkgs.hello -c hello --greeting 'Hi everybody!'的界线使用某些东西? installation guide指向--store在这种用例中的用法,以及手册中的某些部分:12

可以在nix runtests中找到一个例子。

还有其他可能使用的环境变量NIX_STORE_DIR?它记录在nix-shell --help中。

Nix仓库中还有几个问题,这里是an interesting discussion

© www.soinside.com 2019 - 2024. All rights reserved.