a3a17813

By: Tom Sydney Kerckhove <syd@cs-syd.eu>

Fill and read the NixCI cache from local builds

NixCI rebuilds from scratch what a contributor has already built, which
is most of what it charges us for: the same derivations are built here
first, they just never leave this machine.

The dev shell now points Nix at a post-build-hook that copies every
path it builds to the NixCI cache, and the flake substitutes from that
cache in return. Both directions only need a token in ~/.netrc, so no
system configuration is involved: Nix hands the daemon its own
netrc-file setting, and the hook, which runs as the daemon user, reads
the token through it. A machine with no token, or no network, keeps
building as before, because a post-build-hook that fails fails the
build it was called for.
GitHub
Time to Start Worker time Duration Time to finish Idle
Config 1m23s 1s 1s 1m24s 1m23s
Eval 1m35s 1m07s 1m07s 2m43s 11s
Build 2m41s 0s - - 0s
Test - - - - 2h09m45s
Deploy - - - - 0s
Suite 1m23s 1m08s - - 2h11m19s