Open srid opened 1 year ago
( I hadn't seen the support repo, but this should probably be moved to https://github.com/hercules-ci/support/issues )
For every new repo I add, I see that HCI is building the entire world of dependencies
You're right that Hercules CI tries to build the world, and there's some opportunity to optimize this, at least regarding the build dependencies that have already been built. Whether the agent can convince Nix (libstore) to push paths without pushing the whole closure, I'm not sure, but I expect a good improvement from ignoring just the build dependencies that exist in upstream caches
Perhaps it uses exactly the caches specified in
binary-caches.json
It is meant to extend the system substituters. You can confirm this by looking at substitutions that happen in the derivation build log, or perhaps in the evaluation log if you use IFD.
It would be nice to document this under FAQ or somewhere.
For every new repo I add, I see that HCI is building the entire world of dependencies; and this happens fairly all the time given that each repo pins a different nixpkgs. Is there a particular reason it is not pulling them from
cache.nixos.org
?Perhaps it uses exactly the caches specified in
binary-caches.json
(I have one; my nix-server server where drvs are pushed to). Can this file also contain read-only caches like official cache (ie., caches which should not be pushed to)?It would be nice to document this under FAQ or somewhere. I'd rather avoid this world-building and re-use from official cache.