Skip to content

Releases: hercules-ci/hercules-ci-agent

hercules-ci-agent-0.10.2 - 2024-05-03

03 May 00:36
Compare
Choose a tag to compare

Added

  • Add nixSettings configuration item, to more easily configure Nix settings such as substituters, overriding the system Nix settings.
  • Cachix 1.7.2 support

Fixed

  • Remove most uses of c_str(), of which at least one exhibited undefined behavior.
  • nix-darwin module now reads system correctly from the configuration.

hercules-ci-agent-0.10.1 - 2024-02-12

03 May 00:35
Compare
Choose a tag to compare

Changed

  • More work is performed concurrently during evaluation, including binary cache lookups and (more) build dispatch. This results in a speedup.

  • Dependencies of build dependencies are not scheduled eagerly anymore.
    This reduces the scope of all jobs that are evaluated by agents since this release, resulting in a speedup.
    This resolves a noticable slowdown when first evaluating significant Nixpkgs updates when its staging branch is merged.

    Strictly speaking, a job success no longer guarantees that absolutely everything (all the way up to the bootstrap binaries) is realisable on your agents.
    This property is generally not your responsibility, and enforcing it had the effect of excluding less reproducible platforms such as darwin.
    Instead, a weaker property is provided: your derivations are realisable, as well as the immediate build dependencies. "Your derivations" is defined as those whose outputs are not already cached.

    CI setups based on the Nix command line interface (almost all CIs) also behave this way.

  • The recommended configuration format is now JSON, preferably generated using a configuration manager such as NixOS or nix-darwin.
    TOML is still supported, but does not support null in labels, and due to library limitations, it requires that intermediate tables be specified. See the config file documentation.

  • services.hercules-ci-agent is now an alias for services.hercules-ci-agents."", which still provides the same behavior as the old module.

  • Hardening flags have been applied to the NixOS module.

  • The effect sandbox now use the crun container runtime instead of runc.

  • Attribute sets containing a _type attribute are not scanned for derivations in herculesCI.<...>.outputs. This prevents accidental scanning of large or failing attribute trees, such as NixOS configurations. nixosConfigurations in Flakes are still built as usual, as they are not (verbatim) in the herculesCI.<...>.outputs attributes.

Added

  • Effect mounts. Specify effectMountables in the agent configuration, deploy, and mount them into an effect. This can be used for instance to expose the host's /etc/hosts, or hardware devices such as GPUs. Access is controlled by the agent configuration.

  • New configuration option remotePlatformsWithSameFeatures, allowing a remote build to be used before more elaborate remote builder support is implemented.
    The recommended method for running a cluster is still to install hercules-ci-agent on each machine, as that is more efficient and accurate.

  • Agent labels can now be null, when using the JSON configuration format.

Fixed

  • Low level crash details are now reported in the log as expected.

  • An interaction between the Nix GC and threads has been fixed, solving such a crash.

hercules-ci-agent-0.9.12 - 2023-06-28

01 Jul 14:47
Compare
Choose a tag to compare

Added

  • Nix 2.16 support

  • Nix 2.15 support

Fixed

  • Do not chdir the build worker. This functionality of the process package appears unreliable, but is not needed.

hercules-ci-cli-0.3.4

02 Dec 19:11
Compare
Choose a tag to compare

0.3.4 - 2022-12-02

Added

  • hci state get --version INT added, to retrieve a specific revision of a remote state file.

hercules-ci-agent-0.9.9 - 2022-12-02

02 Dec 19:10
Compare
Choose a tag to compare

0.9.9 - 2022-12-02

Fixed

  • The flake templates check now allows filtered sources.

  • Tweaks to diagnostic messages

hercules-ci-agent-0.9.8 - 2022-11-15

15 Nov 15:00
Compare
Choose a tag to compare

Added

  • herculesCI.onSchedule jobs, which a created at set times. These can be used
    to automate work that doesn't start with a code change, such as automatic
    updates or impure periodic deployments.

  • Secret types and the GitToken type, to be provided by the Hercules CI GitHub
    App. As of writing this requires a permission approval in the GitHub UI. This
    has to be initiated on the Hercules CI side. More on that very soon.

  • More repository metadata in the herculesCI attribute; see evaluation docs.

Fixed

  • Work around excessive stack use by libstdc++ regex issue
    The new limit of 256 MiB stack allows larger string inputs to be used.
    This bug was triggered by purs-nix and possibly other Nix expression libraries that parse substantial files.

  • Lift the agent-side restriction on the number of derivations in a job.

hercules-ci-agent-0.9.7 - 2022-07-21

15 Nov 14:59
Compare
Choose a tag to compare

Added

  • Nix 2.10 support

Removed

  • -nix_2_7 variants. Nixpkgs has stopped offering older versions of Nix. If
    you need an older version, you could inject an older Nixpkgs into this flake
    using hercules-ci-agent.inputs.nixpkgs.follows = ....

hercules-ci-agent-0.9.6 - 2022-06-21

21 Jun 12:08
Compare
Choose a tag to compare

0.9.6 - 2022-06-21

Added

  • Nix 2.9 support

Fixed

  • NixOS module: keep main process running when worker triggers system OOM killer.
  • Missing file in hackage sdist

hercules-ci-agent-0.9.5 - 2022-05-17

18 May 08:33
Compare
Choose a tag to compare

0.9.5 - 2022-05-17

Added

  • Concurrent IFD, reducing evaluation wall clock time
  • Nix 2.8.0 support
  • Improved log contexts

Fixed

  • Workaround for cachix#406 (add login to netrc)
  • A crash in inline-c-cpp exception handling (inline-c-cpp update)
  • Towards the error "Could not push logs within 10 minutes after completion"
    • Add a timeout to prevent in case of a stuck handshake
    • Enforce log limit on client side as well in case of excessive log spam and an upload bottleneck

Removed

  • hercules-ci-agent-nix_2_5 variant: upgrade to plain hercules-ci-agent (2.8.0) or _nix_2_7.

hercules-ci-agent-0.9.3 - 2022-04-08

09 Apr 15:47
Compare
Choose a tag to compare

Added

  • The evaluator now caches build statuses and ignores redundant rebuild requests, giving a significant performance boost to IFD-heavy jobs.

Fixed

  • The branch name in flake-based jobs is now handled correctly when special characters are present.