From 8551b8ad9065ecd5abd8878e7eb5459b7acd0bab Mon Sep 17 00:00:00 2001 From: flowey Date: Thu, 17 Sep 2026 10:35:22 -0500 Subject: [PATCH] try and fix deployment --- configuration.nix | 10 ++-------- flake.lock | 13 +++++++++++++ flake.nix | 11 ++++++++++- misc/deploy-label/label | 0 scripts/server-autodeploy.sh | 10 ++++++---- 5 files changed, 31 insertions(+), 13 deletions(-) create mode 100644 misc/deploy-label/label diff --git a/configuration.nix b/configuration.nix index 7461aba..da77608 100644 --- a/configuration.nix +++ b/configuration.nix @@ -5,6 +5,7 @@ hostInfo, customPkgs, flakeRev, + deployLabel, ... }: let @@ -62,14 +63,7 @@ in time.timeZone = "UTC"; system.stateVersion = "26.05"; - system.nixos.label = - let - labelFile = ./.nixos-label; - in - if builtins.pathExists labelFile then - lib.removeSuffix "\n" (builtins.readFile labelFile) - else - flakeRev; + system.nixos.label = if deployLabel != null then deployLabel else flakeRev; nix = { settings = { diff --git a/flake.lock b/flake.lock index 6e14954..98d5d3a 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,17 @@ { "nodes": { + "deploy-label": { + "flake": false, + "locked": { + "path": "./misc/deploy-label", + "type": "path" + }, + "original": { + "path": "./misc/deploy-label", + "type": "path" + }, + "parent": [] + }, "flake-utils": { "inputs": { "systems": "systems" @@ -79,6 +91,7 @@ }, "root": { "inputs": { + "deploy-label": "deploy-label", "microvm": "microvm", "mtce": "mtce", "nixpkgs": "nixpkgs" diff --git a/flake.nix b/flake.nix index 541b7fc..95b7e43 100644 --- a/flake.nix +++ b/flake.nix @@ -7,6 +7,8 @@ mtce.inputs.nixpkgs.follows = "nixpkgs"; microvm.url = "github:microvm-nix/microvm.nix"; microvm.inputs.nixpkgs.follows = "nixpkgs"; + deploy-label.url = "path:./misc/deploy-label"; + deploy-label.flake = false; }; outputs = @@ -15,6 +17,7 @@ nixpkgs, mtce, microvm, + deploy-label, ... }: let @@ -23,6 +26,12 @@ pkgs = import nixpkgs { inherit system; }; flakeRev = self.shortRev or self.dirtyShortRev or "unknown"; + deployLabel = + let + labelFile = "${deploy-label}/label"; + raw = lib.removeSuffix "\n" (builtins.readFile labelFile); + in + if raw != "" then raw else null; customPkgs = { hopper-rs = pkgs.callPackage ./packages/hopper-rs.nix { }; @@ -56,7 +65,7 @@ specialArgsFor = hostName: { hostInfo = hostInfoFor hostName; - inherit inputs customPkgs flakeRev; + inherit inputs customPkgs flakeRev deployLabel; }; hostDefFor = diff --git a/misc/deploy-label/label b/misc/deploy-label/label new file mode 100644 index 0000000..e69de29 diff --git a/scripts/server-autodeploy.sh b/scripts/server-autodeploy.sh index cfd7a76..54a236c 100644 --- a/scripts/server-autodeploy.sh +++ b/scripts/server-autodeploy.sh @@ -48,15 +48,17 @@ runas git tag -v "$latest" || { sha=$(runas git rev-list -1 "$latest") report_status "pending" "deploying $latest" "$sha" -runas git checkout "$latest" -runas tee .nixos-label <<< "$latest" >/dev/null -runas git add .nixos-label +label_dir=$(mktemp -d) +echo "$latest" > "$label_dir/label" +flake_url="git+${GITEA_URL}/${GITEA_REPO}?ref=refs/tags/${latest}&rev=${sha}#$HOSTNAME" -if nixos-rebuild switch --flake ".#$HOSTNAME"; then +if nixos-rebuild switch --flake "$flake_url" --override-input deploy-label "path:$label_dir"; then + rm -rf "$label_dir" echo "$latest" > "$STATE_DIR/tag" report_status "success" "deployed $latest" "$sha" echo "deployed $latest" else + rm -rf "$label_dir" report_status "failure" "nixos-rebuild failed" "$sha" exit 1 fi