Merge pull request #112637 from hercules-ci/hercules-ci-agent-maintenance
nixos/hercules-ci-agent: maintenance
This commit is contained in:
commit
075e1f7ee4
@ -7,7 +7,6 @@ Platform-specific code is in the respective default.nix files.
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
{ config, lib, options, pkgs, ... }:
|
{ config, lib, options, pkgs, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
inherit (lib)
|
inherit (lib)
|
||||||
filterAttrs
|
filterAttrs
|
||||||
@ -22,7 +21,7 @@ let
|
|||||||
cfg =
|
cfg =
|
||||||
config.services.hercules-ci-agent;
|
config.services.hercules-ci-agent;
|
||||||
|
|
||||||
format = pkgs.formats.toml {};
|
format = pkgs.formats.toml { };
|
||||||
|
|
||||||
settingsModule = { config, ... }: {
|
settingsModule = { config, ... }: {
|
||||||
freeformType = format.type;
|
freeformType = format.type;
|
||||||
@ -36,10 +35,14 @@ let
|
|||||||
};
|
};
|
||||||
concurrentTasks = mkOption {
|
concurrentTasks = mkOption {
|
||||||
description = ''
|
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 <literal>x86_64-linux</literal>
|
A task is a single derivation build or an evaluation.
|
||||||
to allow for import from derivation.
|
At minimum, you need 2 concurrent tasks for <literal>x86_64-linux</literal>
|
||||||
|
in your cluster, to allow for import from derivation.
|
||||||
|
|
||||||
|
<literal>concurrentTasks</literal> can be around the CPU core count or lower if memory is
|
||||||
|
the bottleneck.
|
||||||
'';
|
'';
|
||||||
type = types.int;
|
type = types.int;
|
||||||
default = 4;
|
default = 4;
|
||||||
@ -85,38 +88,39 @@ let
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# TODO (2022) remove
|
# TODO (roberth, >=2022) remove
|
||||||
checkNix =
|
checkNix =
|
||||||
if !cfg.checkNix
|
if !cfg.checkNix
|
||||||
then ""
|
then ""
|
||||||
else if lib.versionAtLeast config.nix.package.version "2.3.10"
|
else if lib.versionAtLeast config.nix.package.version "2.3.10"
|
||||||
then ""
|
then ""
|
||||||
else pkgs.stdenv.mkDerivation {
|
else
|
||||||
name = "hercules-ci-check-system-nix-src";
|
pkgs.stdenv.mkDerivation {
|
||||||
inherit (config.nix.package) src patches;
|
name = "hercules-ci-check-system-nix-src";
|
||||||
configurePhase = ":";
|
inherit (config.nix.package) src patches;
|
||||||
buildPhase = ''
|
configurePhase = ":";
|
||||||
echo "Checking in-memory pathInfoCache expiry"
|
buildPhase = ''
|
||||||
if ! grep 'PathInfoCacheValue' src/libstore/store-api.hh >/dev/null; then
|
echo "Checking in-memory pathInfoCache expiry"
|
||||||
cat 1>&2 <<EOF
|
if ! grep 'PathInfoCacheValue' src/libstore/store-api.hh >/dev/null; then
|
||||||
|
cat 1>&2 <<EOF
|
||||||
|
|
||||||
You are deploying Hercules CI Agent on a system with an incompatible
|
You are deploying Hercules CI Agent on a system with an incompatible
|
||||||
nix-daemon. Please make sure nix.package is set to a Nix version of at
|
nix-daemon. Please make sure nix.package is set to a Nix version of at
|
||||||
least 2.3.10 or a master version more recent than Mar 12, 2020.
|
least 2.3.10 or a master version more recent than Mar 12, 2020.
|
||||||
EOF
|
EOF
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
'';
|
'';
|
||||||
installPhase = "touch $out";
|
installPhase = "touch $out";
|
||||||
};
|
};
|
||||||
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
(mkRenamedOptionModule ["services" "hercules-ci-agent" "extraOptions"] ["services" "hercules-ci-agent" "settings"])
|
(mkRenamedOptionModule [ "services" "hercules-ci-agent" "extraOptions" ] [ "services" "hercules-ci-agent" "settings" ])
|
||||||
(mkRenamedOptionModule ["services" "hercules-ci-agent" "baseDirectory"] ["services" "hercules-ci-agent" "settings" "baseDirectory"])
|
(mkRenamedOptionModule [ "services" "hercules-ci-agent" "baseDirectory" ] [ "services" "hercules-ci-agent" "settings" "baseDirectory" ])
|
||||||
(mkRenamedOptionModule ["services" "hercules-ci-agent" "concurrentTasks"] ["services" "hercules-ci-agent" "settings" "concurrentTasks"])
|
(mkRenamedOptionModule [ "services" "hercules-ci-agent" "concurrentTasks" ] [ "services" "hercules-ci-agent" "settings" "concurrentTasks" ])
|
||||||
(mkRemovedOptionModule ["services" "hercules-ci-agent" "patchNix"] "Nix versions packaged in this version of Nixpkgs don't need a patched nix-daemon to work correctly in Hercules CI Agent clusters.")
|
(mkRemovedOptionModule [ "services" "hercules-ci-agent" "patchNix" ] "Nix versions packaged in this version of Nixpkgs don't need a patched nix-daemon to work correctly in Hercules CI Agent clusters.")
|
||||||
];
|
];
|
||||||
|
|
||||||
options.services.hercules-ci-agent = {
|
options.services.hercules-ci-agent = {
|
||||||
|
@ -7,9 +7,7 @@ Code that is shared with nix-darwin goes in common.nix.
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
{ pkgs, config, lib, ... }:
|
{ pkgs, config, lib, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
|
|
||||||
inherit (lib) mkIf mkDefault;
|
inherit (lib) mkIf mkDefault;
|
||||||
|
|
||||||
cfg = config.services.hercules-ci-agent;
|
cfg = config.services.hercules-ci-agent;
|
||||||
@ -21,7 +19,7 @@ in
|
|||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./common.nix
|
./common.nix
|
||||||
(lib.mkRenamedOptionModule ["services" "hercules-ci-agent" "user"] ["systemd" "services" "hercules-ci-agent" "serviceConfig" "User"])
|
(lib.mkRenamedOptionModule [ "services" "hercules-ci-agent" "user" ] [ "systemd" "services" "hercules-ci-agent" "serviceConfig" "User" ])
|
||||||
];
|
];
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
@ -80,6 +78,8 @@ in
|
|||||||
isSystemUser = true;
|
isSystemUser = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
users.groups.hercules-ci-agent = {};
|
users.groups.hercules-ci-agent = { };
|
||||||
};
|
};
|
||||||
|
|
||||||
|
meta.maintainers = [ lib.maintainers.roberth ];
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user