Utility for uploading nix build artificats to an s3-compatibile cache

f59f92a ci: Use cargo-nextest for tests

1 year, 9 months ago

bf74bbf build test

1 year, 9 months ago


#Table of Contents


A very WIP tool for uploading Nix build artifacts to an s3 compatible binary cache. This will eventually support direct upload to s3/b2, and possibly direct singing, but at the moment it shells out to the nix to perform those operations.

Takes a snapshot of your nix store state before your build, and then signs and uploads new installable afterwards.

#Getting Started


This program is only intended to run on systems with nix installed, and has the following dependencies:

  • xz
  • curl


Install though cargo:

cargo install nix-cache-watcher

or through Nix:

nix registry add nix-cache-watcher 'git+https://git.sr.ht/~thatonelutenist/nix-cache-watcher?ref=trunk'
nix build nix-cache-watcher# --profile /home/build/.nix-profile


See nix-cache-watcher --help for full syntax and options.

Before starting your build, you must take a snapshot of the current nix store state:

nix-cache-watcher save-store

Then, run your build. After your build completes, first sign the new store paths, and then send them off for upload:

nix-cache-watcher sign-store -k $PATH_TO_KEY
nix-cache-watcher upload-diff -r "$CACHE_URI" -v

Note: you must already have your AWS SDK credentials configured for this to work.