diff --git a/home-manager/roles/zsh/zshrc b/home-manager/roles/zsh/zshrc index 59095240..247d0c6a 100644 --- a/home-manager/roles/zsh/zshrc +++ b/home-manager/roles/zsh/zshrc @@ -41,10 +41,10 @@ function title { setopt prompt_subst autoload -U colors && colors # Enable colors in prompt -alias nom-build-remote="nom build --builders '@/etc/nix/machines'" -alias nix-build-remote="nix build --builders '@/etc/nix/machines'" -alias nixpkgs-review-pr-remote='nixpkgs-review pr --build-args "--builders @/etc/nix/machines"' -alias nixpkgs-review-rev-remote='nixpkgs-review rev --build-args "--builders @/etc/nix/machines"' +alias nom-build-remote="nom build --builders $(builders-configurators)" +alias nix-build-remote="nix build --builders $(builders-configurators)" +alias nixpkgs-review-pr-remote='nixpkgs-review pr --build-args "--builders $(builders-configurators)' +alias nixpkgs-review-rev-remote='nixpkgs-review rev --build-args "--builders $(builders-configurators)' alias accounting='f() { if [[ "$1" == "" ]]; then year="buchhaltung" else year="$1" fi; hledger -f ~/git/buchhaltung/$year.journal ui -- --watch --theme=terminal -X€ -t -E}; f' alias o=xdg-open alias sudo='sudo -A' diff --git a/nixos/machines/zeus/configuration.nix b/nixos/machines/zeus/configuration.nix index 0a2cb156..f676f92d 100644 --- a/nixos/machines/zeus/configuration.nix +++ b/nixos/machines/zeus/configuration.nix @@ -24,6 +24,8 @@ in { age.identityPaths = ["/disk/persist/etc/ssh/ssh_host_ed25519_key"]; + nix.distributedBuilds = false; + fileSystems = let btrfsOptions = {options = ["compress=zstd" "autodefrag" "noatime"];}; in { diff --git a/nixos/roles/default.nix b/nixos/roles/default.nix index eb1c77e3..2906acfe 100644 --- a/nixos/roles/default.nix +++ b/nixos/roles/default.nix @@ -105,6 +105,7 @@ nix-output-monitor jq home-manager + builders-configurator ; inherit (pkgs.python3Packages) qrcode; }; diff --git a/nixos/roles/laminar/projects.nix b/nixos/roles/laminar/projects.nix index 000c9179..e99b76ff 100644 --- a/nixos/roles/laminar/projects.nix +++ b/nixos/roles/laminar/projects.nix @@ -11,11 +11,11 @@ export PATH=${lib.makeBinPath path}:$PATH git clone git@localhost:${name} . git show -q --oneline - export FLAGS="--builders @/etc/nix/machines -o /var/cache/gc-links/$JOB" + export FLAGS="--builders @$(${pkgs.builders-configurator}/bin/builders-configurators) -o /var/cache/gc-links/$JOB" if [[ -e "flake.nix" ]]; then echo "Flake detected." echo "Running 'flake check'" - ${pkgs.nix}/bin/nix flake check --builders @/etc/nix/machines + ${pkgs.nix}/bin/nix flake check $FLAGS echo "Running 'nix build'" ${pkgs.nix}/bin/nix build $FLAGS else diff --git a/nixos/roles/standalone/default.nix b/nixos/roles/standalone/default.nix index 9d2bf41c..37d5787d 100644 --- a/nixos/roles/standalone/default.nix +++ b/nixos/roles/standalone/default.nix @@ -1,6 +1,7 @@ { pkgs, config, + lib, ... }: { boot = { @@ -25,7 +26,7 @@ ''); nix = { - distributedBuilds = true; + distributedBuilds = lib.mkDefault true; gc = { automatic = false; options = "-d"; diff --git a/packages/builders-configurator/exe/Main.hs b/packages/builders-configurator/exe/Main.hs index 624e6a82..6ce37b85 100644 --- a/packages/builders-configurator/exe/Main.hs +++ b/packages/builders-configurator/exe/Main.hs @@ -65,8 +65,8 @@ builderConfigs = Map.fromList [ ("hera", [FirstOf ["zeus-builder"], Use "fluffy-builder", Use "remote-builder", Use "nixbuild.net"]) , ("apollo", [FirstOf ["zeus-builder-local", "zeus-builder"], FirstOfFinally ["fluffy-builder-local"] "fluffy-builder", Use "remote-builder", Use "nixbuild.net"]) - , ("fluffy", [FirstOf ["zeus-builder-local"], Use "fluffy-builder-local", Use "remote-builder", Use "nixbuild.net"]) - , ("zeus", [Use "zeus-builder-local", Use "fluffy-builder-local", Use "remote-builder", Use "nixbuild.net"]) + , ("fluffy", [FirstOf ["zeus-builder-local"], Use "remote-builder", Use "nixbuild.net"]) + , ("zeus", [Use "fluffy-builder-local", Use "remote-builder", Use "nixbuild.net"]) ] commaList :: [Text] -> Text @@ -93,15 +93,15 @@ printBuilders = Text.unlines . fmap builderLine . Foldable.foldr' folder [] main :: IO () main = do - host : args <- getArgs - let withoutConnection = - args & \case - [] -> False - ["--without-connection"] -> True - _ -> error [i|Unknown arguments: #{args}|] - let - builder_tries :: Ping :> es => Eff es [Text] - builder_tries = testBuilders $ fromMaybe (error [i|#{host} not found in builderConfigs.|]) $ Map.lookup (into host) builderConfigs + args <- getArgs + env_host <- fromMaybe (error "accessed $HOST which is not set.") <$> lookupEnv "HOST" + let (host, withoutConnection) = case args of + [] -> (env_host, False) + [host'] -> (host', False) + [host', "--without-connection"] -> (host', True) + _ -> error [i|Unknown arguments: #{args}|] + builder_tries :: Ping :> es => Eff es [Text] + builder_tries = testBuilders $ fromMaybe (error [i|#{host} not found in builderConfigs.|]) $ Map.lookup (into host) builderConfigs builders <- if withoutConnection then pure $ Eff.runPureEff $ runWithoutConnectivity builder_tries