hercules-ci / support

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

S3 binary cache #28

Closed basvandijk closed 4 years ago

basvandijk commented 5 years ago

Is there any support planned for binary caches hosted on S3 (like Hydra's store_uri = s3://...)?

domenkozar commented 5 years ago

@basvandijk Yes, although it's not a priority at the moment (binary cache is an agent feature so anyone can contribute S3 support).

We've made some improvements (mostly performance like bulk querying of narinfos) to Cachix as small steps forward better experience.

It would help to understand the reasons why S3 would be preferred over Cachix to influence the prioritization (opposed to improvements to Cachix).

basvandijk commented 5 years ago

It would help to understand the reasons why S3 would be preferred over Cachix to influence the prioritization (opposed to improvements to Cachix).

I would like to minimize the number of people who can access our cache (because it will contain our source code) in order to better sell Hercules to the company I work for. IIUC cachix can't be self hosted right?

domenkozar commented 5 years ago

You're able to limit the users of private binary cache and very soon we'll add token support to fine grain that access.

We believe S3 is a bad choice, because:

a) if you upload a huge build closure (with thousand of derivations, haskell.nix for example has 10k), it's going to request for each derivation if it exists first, making evaluations really slow. We've fixed that in Cachix with bulk queries and it can save up to a minute of evaluation time.

b) A number of features will depend on Cachix, for example, build artifacts support (called build outputs in Hydra).

That being said, Cachix can't be self-hosted at the moment.

We're planning to add more features to Cachix+CI integration in the near future. If enough Hercules CI users request S3 support, we will add it as well. Thank for the request :)

Br1ght0ne commented 4 years ago

Having support for S3 means frictionless integration into existing Hydra setups using it. I'd like to request it too.

roberth commented 4 years ago

S3 is supported now. See https://docs.hercules-ci.com/hercules-ci/reference/binary-caches-json/#_nixcache