From 80ef71e9958d0effe0ea1e1fb39b7200e02eff70 Mon Sep 17 00:00:00 2001 From: William Carroll Date: Thu, 16 Dec 2021 19:49:23 -0500 Subject: feat(ops/auto-deploy): Support auto-deploy Automatically rebuild the current system's NixOS config from the latest checkout of depot. Change-Id: I23aa7af50e16e985ac34df214e0905e770316e5e Reviewed-on: https://cl.tvl.fyi/c/depot/+/4390 Reviewed-by: wpcarro Reviewed-by: zseri Reviewed-by: grfn Autosubmit: wpcarro Tested-by: BuildkiteCI --- ops/nixos.nix | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'ops/nixos.nix') diff --git a/ops/nixos.nix b/ops/nixos.nix index 19ba0168c0..66ca188c5b 100644 --- a/ops/nixos.nix +++ b/ops/nixos.nix @@ -32,7 +32,9 @@ in rec { (throw "${hostname} is not a known NixOS host") (map nixosFor depot.ops.machines.all-systems)); - rebuild-system = pkgs.writeShellScriptBin "rebuild-system" '' + rebuild-system = rebuildSystemWith depot.path; + + rebuildSystemWith = depotPath: pkgs.writeShellScriptBin "rebuild-system" '' set -ue if [[ $EUID -ne 0 ]]; then echo "Oh no! Only root is allowed to rebuild the system!" >&2 @@ -40,9 +42,9 @@ in rec { fi echo "Rebuilding NixOS for $HOSTNAME" - system=$(nix-build -E "((import ${toString depot.path} {}).ops.nixos.findSystem \"$HOSTNAME\").system" --no-out-link --show-trace) + system=$(${pkgs.nix}/bin/nix-build -E "((import ${depotPath} {}).ops.nixos.findSystem \"$HOSTNAME\").system" --no-out-link --show-trace) - nix-env -p /nix/var/nix/profiles/system --set $system + ${pkgs.nix}/bin/nix-env -p /nix/var/nix/profiles/system --set $system $system/bin/switch-to-configuration switch ''; -- cgit 1.4.1