diff --git a/nix/configuration/roles/hydra/default.nix b/nix/configuration/roles/hydra/default.nix index b8c25af..6b0803a 100644 --- a/nix/configuration/roles/hydra/default.nix +++ b/nix/configuration/roles/hydra/default.nix @@ -104,33 +104,65 @@ in }; }; - systemd.services."build-cache" = { - script = '' - set -euo pipefail - IFS=$'\n\t' - DIR="$( cd "$( dirname "''${BASH_SOURCE[0]}" )" && pwd )" + systemd.services."build-cache" = + let + enabled_targets = [ + "odo" + "odo_update" + "odowork" + "odowork_update" + "quark" + "quark_update" + "hydra" + "hydra_update" + "controller0" + "controller0_update" + "controller1" + "controller1_update" + "controller2" + "controller2_update" + "worker0" + "worker0_update" + "worker1" + "worker1_update" + "worker2" + "worker2_update" + "family_disks" + "family_disks_update" + # "nixbsd" # Disabled due to onetbb tests hanging on one-cpu machines. + ]; + build_flags = lib.concatMap (target: [ + "--target" + (lib.escapeShellArg target) + ]) enabled_targets; + in + { + script = '' + set -euo pipefail + IFS=$'\n\t' + DIR="$( cd "$( dirname "''${BASH_SOURCE[0]}" )" && pwd )" - NIX_REMOTE='local?root=/.disk/root' RUST_BACKTRACE=1 RUST_LOG=nix_builder=DEBUG ${nix_builder}/bin/nix-builder build --config ${./files/nix_builder.toml} --target odo --target odo_update --target odowork --target odowork_update --target quark --target quark_update --target hydra --target hydra_update --target controller0 --target controller0_update --target controller1 --target controller1_update --target controller2 --target controller2_update --target worker0 --target worker0_update --target worker1 --target worker1_update --target worker2 --target worker2_update --target family_disks --target family_disks_update --target nixbsd - ''; - restartIfChanged = false; - serviceConfig = { - Type = "simple"; - User = "nixworker"; - # restartIfChanged = false; - # RemainAfterExit = true; # Prevents the service from automatically starting on rebuild. See https://discourse.nixos.org/t/how-to-prevent-custom-systemd-service-from-restarting-on-nixos-rebuild-switch/43431 - LimitNOFILE = 8192; + NIX_REMOTE='local?root=/.disk/root' RUST_BACKTRACE=1 RUST_LOG=nix_builder=DEBUG ${nix_builder}/bin/nix-builder build --config ${./files/nix_builder.toml} ${builtins.concatStringsSep " " build_flags} + ''; + restartIfChanged = false; + serviceConfig = { + Type = "simple"; + User = "nixworker"; + # restartIfChanged = false; + # RemainAfterExit = true; # Prevents the service from automatically starting on rebuild. See https://discourse.nixos.org/t/how-to-prevent-custom-systemd-service-from-restarting-on-nixos-rebuild-switch/43431 + LimitNOFILE = 8192; + }; }; - }; # TODO: This should move into nix-builder so we can only run clean when builds are passing. Otherwise partial builds will lose progress. # TODO: In nix-builder maybe include setting to auto delete to make room during builds if we run out of space, just in case builds are failing for a long time and prevent cleanup from running. - systemd.timers."clean-cache" = { - wantedBy = [ "timers.target" ]; - timerConfig = { - OnCalendar = "*-*-01 02:00:00 America/New_York"; - Unit = "clean-cache.service"; - }; - }; + # systemd.timers."clean-cache" = { + # wantedBy = [ "timers.target" ]; + # timerConfig = { + # OnCalendar = "*-*-01 02:00:00 America/New_York"; + # Unit = "clean-cache.service"; + # }; + # }; systemd.services."clean-cache" = { script = '' diff --git a/nix/configuration/roles/hydra/files/nix_builder.toml b/nix/configuration/roles/hydra/files/nix_builder.toml index 4485ba2..b7d8f81 100644 --- a/nix/configuration/roles/hydra/files/nix_builder.toml +++ b/nix/configuration/roles/hydra/files/nix_builder.toml @@ -178,9 +178,9 @@ output_directory = "/home/nixworker/persist/nix_builder" update = true update_branch = "nix_update" -[[targets]] - name = "nixbsd" - repo = "https://github.com/nixos-bsd/nixbsd.git" - revision = "828ff7a3c4ee91f548de65a963fca40eaedb171c" - path = "." - attr = "base.vmClosureInfo" +# [[targets]] +# name = "nixbsd" +# repo = "https://github.com/nixos-bsd/nixbsd.git" +# revision = "828ff7a3c4ee91f548de65a963fca40eaedb171c" +# path = "." +# attr = "base.vmClosureInfo"