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 <wpcarro@gmail.com> Reviewed-by: zseri <zseri.devel@ytrizja.de> Reviewed-by: grfn <grfn@gws.fyi> Autosubmit: wpcarro <wpcarro@gmail.com> Tested-by: BuildkiteCI
This commit is contained in:
parent
1d10adb67c
commit
80ef71e995
4 changed files with 103 additions and 3 deletions
|
|
@ -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
|
||||
'';
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue