Hercules CI #5 update requiredSystemFeatures, Cachix and Darwin support

1 minute read

What’s new?

We’ve released hercules-ci-agent 0.3 , which brings in Cachix and Darwin (macOS) support alongside with requiredSystemFeatures.

hercules-agent-0.3.0

TOML configuration

Previously the agent was configured via CLI options. Those are now all part of a configuration file formatted using TOML.

Support for binary caches

Added support for Cachix binary caches to share resulting binaries either with the public and/or between developers and/or just multiple agents.

Multi-agent and Darwin support

With binary caches to share derivations and binaries between machines, you’re now able to have multiple agents running.

Sharing binaries between machines takes time (bandwidth) so we recommend upgrading agent hardware over adding more agents.

In addition to Linux, Darwin (macOS) also became a supported deployment platform for the agent.

requiredSystemFeatures support

Derivations are now dispatched also based on requiredSystemFeatures derivation attribute that allows dispatching specific derivations to specific agents.

Cachix 0.2.1

Upgrade via the usual:

$ nix-env -iA cachix -f https://cachix.org/api/v1/install

The most notable improvement is default compression has been lowered to increase throughput and it’s overridable via ``–compression-level`.

See Changelog for more details.

What’s next?

Known issues we’re resolving:

Builds that are in progress while agent is restarted won’t be re-queued. We’re prioritizing this one. Expect a bugfix in next deployment.

Evaluation and building is slower with Cachix. We’re going to add bulk query support and upstream caches to mitigate that.

Having a lot of failed derivations (>10k) will get frontend unresponsive.

Cachix auth tokens for private binary caches are personal. We’ll add support to create tokens specific to a cache.

If you notice any other bugs or annoyances please let us know.

Preview phase

The preview phase will now extend to all subscribers, which is the final phase before we’re launching publicly.

You can also receive our latest updates via Twitter or read the previous development update.