diff --git a/nixos/modules/services/continuous-integration/hercules-ci-agent/common.nix b/nixos/modules/services/continuous-integration/hercules-ci-agent/common.nix index 24884655c660..9f9b86ee61cb 100644 --- a/nixos/modules/services/continuous-integration/hercules-ci-agent/common.nix +++ b/nixos/modules/services/continuous-integration/hercules-ci-agent/common.nix @@ -7,7 +7,6 @@ Platform-specific code is in the respective default.nix files. */ { config, lib, options, pkgs, ... }: - let inherit (lib) filterAttrs @@ -22,7 +21,7 @@ let cfg = config.services.hercules-ci-agent; - format = pkgs.formats.toml {}; + format = pkgs.formats.toml { }; settingsModule = { config, ... }: { freeformType = format.type; @@ -36,10 +35,14 @@ let }; concurrentTasks = mkOption { description = '' - Number of tasks to perform simultaneously, such as evaluations, derivations. + Number of tasks to perform simultaneously. - You must have a total capacity across agents of at least 2 concurrent tasks on x86_64-linux - to allow for import from derivation. + A task is a single derivation build or an evaluation. + At minimum, you need 2 concurrent tasks for x86_64-linux + in your cluster, to allow for import from derivation. + + concurrentTasks can be around the CPU core count or lower if memory is + the bottleneck. ''; type = types.int; default = 4; @@ -85,38 +88,39 @@ let }; }; - # TODO (2022) remove + # TODO (roberth, >=2022) remove checkNix = if !cfg.checkNix then "" else if lib.versionAtLeast config.nix.package.version "2.3.10" then "" - else pkgs.stdenv.mkDerivation { - name = "hercules-ci-check-system-nix-src"; - inherit (config.nix.package) src patches; - configurePhase = ":"; - buildPhase = '' - echo "Checking in-memory pathInfoCache expiry" - if ! grep 'PathInfoCacheValue' src/libstore/store-api.hh >/dev/null; then - cat 1>&2 </dev/null; then + cat 1>&2 <