hercules-ci / support

User feedback, questions and our public roadmap. help@hercules-ci.com
5 stars 1 forks source link

How to use cache.nixos.org? #68

Open srid opened 1 year ago

srid commented 1 year ago

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.

srid commented 1 year ago

( I hadn't seen the support repo, but this should probably be moved to https://github.com/hercules-ci/support/issues )

roberth commented 1 year ago

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.