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 <