feat: automated deployment #7

Merged
flowey merged 7 commits from flowey/auto-deploy into master 2026-09-14 04:40:53 +00:00
Owner
No description provided.

System closure diff vs master

example

<<< /nix/store/prahsm2071cyy2ldx86qagz3s37prqzd-nixos-system-example-26.11.20260810.2fcb964
>>> /nix/store/x2rryzfk3qa5w734kj1i6ycagjmcrpx4-nixos-system-example-ead537a

CHANGED
[U*] nixos-system-example           26.11.20260810.2fcb964 -> ead537a

ADDED
[A.] server-autodeploy              <none>
[A.] signers                        <none>
[A.] unit-server-autodeploy.service <none>
[A.] unit-server-autodeploy.timer   <none>

PATHS: 816 -> 820 (+8, -4)
SIZE: 3.29 GiB -> 3.29 GiB
DIFF: +5.77 KiB

server-n0

<<< /nix/store/k6mfj88i62npmx2kh4w7zlcs3187qw06-nixos-system-server-n0-26.11.20260810.2fcb964
>>> /nix/store/93ifshnlxs27lq65j63xyyxllafh3y9b-nixos-system-server-n0-ead537a

CHANGED
[U*] nixos-system-server-n0         26.11.20260810.2fcb964 -> ead537a

ADDED
[A.] server-autodeploy              <none>
[A.] signers                        <none>
[A.] unit-server-autodeploy.service <none>
[A.] unit-server-autodeploy.timer   <none>

PATHS: 2308 -> 2312 (+8, -4)
SIZE: 10.6 GiB -> 10.6 GiB
DIFF: +5.76 KiB

Inspection diff vs master

example

@@ dependencies @@
+ edges:
+   - from: @host:server-autodeploy.service
+     kind: after
+     to: @host:network-online.target
+ edges:
+   - from: @host:server-autodeploy.service
+     kind: wants
+     to: @host:network-online.target
+ edges:
+   - from: @host:timers.target
+     kind: wants
+     to: @host:server-autodeploy.timer
@@ meta @@
+ paths.config: /persist/@config/
@@ units @@
+ @host.server-autodeploy.service:
+   after:
+     - network-online.target
+   description: Deploy latest signed tag
+   enable: true
+   environment:
+     ALLOWED_SIGNERS: signers
+     DEPLOY_BRANCH: master
+     GITEA_REPO: server/server-config
+     GITEA_URL: https://git.floweytf.com/
+     PATH: nix-2.34.8/bin:nixos-rebuild-ng-26.11/bin:coreutils-9.11/bin:findutils-4.11.0/bin:gnugrep-3.12/bin:gnused-4.10/bin:systemd-261.1/bin:nix-2.34.8/sbin:nixos-rebuild-ng-26.11/sbin:coreutils-9.11/sbin:findutils-4.11.0/sbin:gnugrep-3.12/sbin:gnused-4.10/sbin:systemd-261.1/sbin
+     REPO_DIR: /persist/@configuration
+     STATE_DIR: /persist/@config/
+     TOKEN_FILE: /persist/@secrets//gitea-autodeploy-token
+   name: server-autodeploy.service
+   path:
+     - nix-2.34.8
+     - nixos-rebuild-ng-26.11
+     - coreutils-9.11
+     - findutils-4.11.0
+     - gnugrep-3.12
+     - gnused-4.10
+     - systemd-261.1
+   restartIfChanged: true
+   serviceConfig:
+     ExecStart: server-autodeploy/bin/server-autodeploy
+     TimeoutStartSec: 30min
+     Type: oneshot
+   stopIfChanged: true
+   unitConfig:
+     After: network-online.target
+     Description: Deploy latest signed tag
+     Wants: network-online.target
+   wants:
+     - network-online.target
+ @host.server-autodeploy.timer:
+   description: 
+   enable: true
+   name: server-autodeploy.timer
+   timerConfig:
+     OnBootSec: 2min
+     OnUnitActiveSec: 15min
+     RandomizedDelaySec: 2min
+   unitConfig: {}
+   wantedBy:
+     - timers.target

server-n0

@@ dependencies @@
+ edges:
+   - from: @host:server-autodeploy.service
+     kind: after
+     to: @host:network-online.target
+ edges:
+   - from: @host:server-autodeploy.service
+     kind: wants
+     to: @host:network-online.target
+ edges:
+   - from: @host:timers.target
+     kind: wants
+     to: @host:server-autodeploy.timer
@@ deployments @@
- mail.includedInTests: true
+ mail.includedInTests: false
@@ meta @@
+ paths.config: /persist/@config/
@@ units @@
+ @host.server-autodeploy.service:
+   after:
+     - network-online.target
+   description: Deploy latest signed tag
+   enable: true
+   environment:
+     ALLOWED_SIGNERS: signers
+     DEPLOY_BRANCH: master
+     GITEA_REPO: server/server-config
+     GITEA_URL: https://git.floweytf.com/
+     PATH: nix-2.34.8/bin:nixos-rebuild-ng-26.11/bin:coreutils-9.11/bin:findutils-4.11.0/bin:gnugrep-3.12/bin:gnused-4.10/bin:systemd-261.1/bin:nix-2.34.8/sbin:nixos-rebuild-ng-26.11/sbin:coreutils-9.11/sbin:findutils-4.11.0/sbin:gnugrep-3.12/sbin:gnused-4.10/sbin:systemd-261.1/sbin
+     REPO_DIR: /persist/@configuration
+     STATE_DIR: /persist/@config/
+     TOKEN_FILE: /persist/@secrets//gitea-autodeploy-token
+   name: server-autodeploy.service
+   path:
+     - nix-2.34.8
+     - nixos-rebuild-ng-26.11
+     - coreutils-9.11
+     - findutils-4.11.0
+     - gnugrep-3.12
+     - gnused-4.10
+     - systemd-261.1
+   restartIfChanged: true
+   serviceConfig:
+     ExecStart: server-autodeploy/bin/server-autodeploy
+     TimeoutStartSec: 30min
+     Type: oneshot
+   stopIfChanged: true
+   unitConfig:
+     After: network-online.target
+     Description: Deploy latest signed tag
+     Wants: network-online.target
+   wants:
+     - network-online.target
+ @host.server-autodeploy.timer:
+   description: 
+   enable: true
+   name: server-autodeploy.timer
+   timerConfig:
+     OnBootSec: 2min
+     OnUnitActiveSec: 15min
+     RandomizedDelaySec: 2min
+   unitConfig: {}
+   wantedBy:
+     - timers.target
<!-- dix-diff --> ### System closure diff vs `master` ## example ``` <<< /nix/store/prahsm2071cyy2ldx86qagz3s37prqzd-nixos-system-example-26.11.20260810.2fcb964 >>> /nix/store/x2rryzfk3qa5w734kj1i6ycagjmcrpx4-nixos-system-example-ead537a CHANGED [U*] nixos-system-example 26.11.20260810.2fcb964 -> ead537a ADDED [A.] server-autodeploy <none> [A.] signers <none> [A.] unit-server-autodeploy.service <none> [A.] unit-server-autodeploy.timer <none> PATHS: 816 -> 820 (+8, -4) SIZE: 3.29 GiB -> 3.29 GiB DIFF: +5.77 KiB ``` ## server-n0 ``` <<< /nix/store/k6mfj88i62npmx2kh4w7zlcs3187qw06-nixos-system-server-n0-26.11.20260810.2fcb964 >>> /nix/store/93ifshnlxs27lq65j63xyyxllafh3y9b-nixos-system-server-n0-ead537a CHANGED [U*] nixos-system-server-n0 26.11.20260810.2fcb964 -> ead537a ADDED [A.] server-autodeploy <none> [A.] signers <none> [A.] unit-server-autodeploy.service <none> [A.] unit-server-autodeploy.timer <none> PATHS: 2308 -> 2312 (+8, -4) SIZE: 10.6 GiB -> 10.6 GiB DIFF: +5.76 KiB ``` ### Inspection diff vs `master` ## example ```diff @@ dependencies @@ + edges: + - from: @host:server-autodeploy.service + kind: after + to: @host:network-online.target + edges: + - from: @host:server-autodeploy.service + kind: wants + to: @host:network-online.target + edges: + - from: @host:timers.target + kind: wants + to: @host:server-autodeploy.timer @@ meta @@ + paths.config: /persist/@config/ @@ units @@ + @host.server-autodeploy.service: + after: + - network-online.target + description: Deploy latest signed tag + enable: true + environment: + ALLOWED_SIGNERS: signers + DEPLOY_BRANCH: master + GITEA_REPO: server/server-config + GITEA_URL: https://git.floweytf.com/ + PATH: nix-2.34.8/bin:nixos-rebuild-ng-26.11/bin:coreutils-9.11/bin:findutils-4.11.0/bin:gnugrep-3.12/bin:gnused-4.10/bin:systemd-261.1/bin:nix-2.34.8/sbin:nixos-rebuild-ng-26.11/sbin:coreutils-9.11/sbin:findutils-4.11.0/sbin:gnugrep-3.12/sbin:gnused-4.10/sbin:systemd-261.1/sbin + REPO_DIR: /persist/@configuration + STATE_DIR: /persist/@config/ + TOKEN_FILE: /persist/@secrets//gitea-autodeploy-token + name: server-autodeploy.service + path: + - nix-2.34.8 + - nixos-rebuild-ng-26.11 + - coreutils-9.11 + - findutils-4.11.0 + - gnugrep-3.12 + - gnused-4.10 + - systemd-261.1 + restartIfChanged: true + serviceConfig: + ExecStart: server-autodeploy/bin/server-autodeploy + TimeoutStartSec: 30min + Type: oneshot + stopIfChanged: true + unitConfig: + After: network-online.target + Description: Deploy latest signed tag + Wants: network-online.target + wants: + - network-online.target + @host.server-autodeploy.timer: + description: + enable: true + name: server-autodeploy.timer + timerConfig: + OnBootSec: 2min + OnUnitActiveSec: 15min + RandomizedDelaySec: 2min + unitConfig: {} + wantedBy: + - timers.target ``` ## server-n0 ```diff @@ dependencies @@ + edges: + - from: @host:server-autodeploy.service + kind: after + to: @host:network-online.target + edges: + - from: @host:server-autodeploy.service + kind: wants + to: @host:network-online.target + edges: + - from: @host:timers.target + kind: wants + to: @host:server-autodeploy.timer @@ deployments @@ - mail.includedInTests: true + mail.includedInTests: false @@ meta @@ + paths.config: /persist/@config/ @@ units @@ + @host.server-autodeploy.service: + after: + - network-online.target + description: Deploy latest signed tag + enable: true + environment: + ALLOWED_SIGNERS: signers + DEPLOY_BRANCH: master + GITEA_REPO: server/server-config + GITEA_URL: https://git.floweytf.com/ + PATH: nix-2.34.8/bin:nixos-rebuild-ng-26.11/bin:coreutils-9.11/bin:findutils-4.11.0/bin:gnugrep-3.12/bin:gnused-4.10/bin:systemd-261.1/bin:nix-2.34.8/sbin:nixos-rebuild-ng-26.11/sbin:coreutils-9.11/sbin:findutils-4.11.0/sbin:gnugrep-3.12/sbin:gnused-4.10/sbin:systemd-261.1/sbin + REPO_DIR: /persist/@configuration + STATE_DIR: /persist/@config/ + TOKEN_FILE: /persist/@secrets//gitea-autodeploy-token + name: server-autodeploy.service + path: + - nix-2.34.8 + - nixos-rebuild-ng-26.11 + - coreutils-9.11 + - findutils-4.11.0 + - gnugrep-3.12 + - gnused-4.10 + - systemd-261.1 + restartIfChanged: true + serviceConfig: + ExecStart: server-autodeploy/bin/server-autodeploy + TimeoutStartSec: 30min + Type: oneshot + stopIfChanged: true + unitConfig: + After: network-online.target + Description: Deploy latest signed tag + Wants: network-online.target + wants: + - network-online.target + @host.server-autodeploy.timer: + description: + enable: true + name: server-autodeploy.timer + timerConfig: + OnBootSec: 2min + OnUnitActiveSec: 15min + RandomizedDelaySec: 2min + unitConfig: {} + wantedBy: + - timers.target ```
@@ -50,0 +56,4 @@
let
labelFile = ./.nixos-label;
in
if builtins.pathExists labelFile then lib.removeSuffix "\n" (builtins.readFile labelFile) else flakeRev;

[nixfmt] reported by reviewdog 🐶

    if builtins.pathExists labelFile then
      lib.removeSuffix "\n" (builtins.readFile labelFile)
    else
      flakeRev;
**[nixfmt]** <sub>reported by [reviewdog](https://github.com/reviewdog/reviewdog) :dog:</sub><br> ```suggestion if builtins.pathExists labelFile then lib.removeSuffix "\n" (builtins.readFile labelFile) else flakeRev; ``` <!-- __reviewdog__:ChA1MGZiMTRhNzY2ZGRlZjVkEgZuaXhmbXQ= -->
flowey marked this conversation as resolved
flowey added 4 commits 2026-09-13 19:33:36 +00:00
fix failing passes
diff-pr / dix (pull_request) Successful in 6m42s
lint / lint (pull_request) Successful in 1m48s
flake-check / flake-check (pull_request) Failing after 3m21s
d288689de3
flowey force-pushed flowey/auto-deploy from 881a2cf738 to d288689de3 2026-09-13 19:33:36 +00:00 Compare
flowey added 1 commit 2026-09-14 01:00:42 +00:00
suppress mail errors
diff-pr / dix (pull_request) Successful in 6m30s
flake-check / flake-check (pull_request) Failing after 3m28s
lint / lint (pull_request) Successful in 1m46s
84d4aa734a
flowey added 1 commit 2026-09-14 01:14:27 +00:00
suppress mail errors
diff-pr / dix (pull_request) Successful in 6m34s
flake-check / flake-check (pull_request) Failing after 3m17s
lint / lint (pull_request) Successful in 1m50s
5f729053b2
flowey added 1 commit 2026-09-14 01:32:29 +00:00
suppress mail errors
diff-pr / dix (pull_request) Successful in 6m32s
flake-check / flake-check (pull_request) Successful in 3m50s
lint / lint (pull_request) Successful in 1m49s
ead537aef9
flowey merged commit 678031aa0c into master 2026-09-14 04:40:53 +00:00
Sign in to join this conversation.