new deploy pipeline #74

Merged
lament merged 4 commits from deploy into main 2026-07-09 21:55:03 -05:00
Owner
  • CI deploys through deploy-rs now instead of a raw nixos-rebuild switch --target-host
    • new modules/deploy.nix generates flake.deploy.nodes from the directory - one node per host, sshUser = "nixbldRemote", activating as root via passwordless sudo
    • the builder host is filtered out (via roleHost "builder") - it runs the runner that drives the deploys, it doesn't deploy itself
    • magicRollback + autoRollback + 60s confirmTimeout - a lockout or failed activation auto-reverts to the prior generation, the unattended-safety net for the remote hosts
    • deployChecks folded into nix flake check
  • CI job probes reachability before deploying
    • a host that's simply offline (ishtar the desktop) is a ::warning skip, not a failure - deploy step gates on steps.probe.outputs.reachable
    • fail-fast: false on the matrix so one down host doesn't kill the others' deploys
  • deploy-rs wired in as a flake input (nixpkgs follows) and added to the runner's hostPackages so the runner can actually invoke it
  • left for later: nothing pending - brigid itself still owes its real install/enroll from #72
- CI deploys through `deploy-rs` now instead of a raw `nixos-rebuild switch --target-host` - new `modules/deploy.nix` generates `flake.deploy.nodes` from the directory - one node per host, `sshUser = "nixbldRemote"`, activating as `root` via passwordless sudo - the `builder` host is filtered out (via `roleHost "builder"`) - it runs the runner that drives the deploys, it doesn't deploy itself - `magicRollback` + `autoRollback` + 60s `confirmTimeout` - a lockout or failed activation auto-reverts to the prior generation, the unattended-safety net for the remote hosts - `deployChecks` folded into `nix flake check` - CI job probes reachability before deploying - a host that's simply offline (`ishtar` the desktop) is a `::warning` skip, not a failure - deploy step gates on `steps.probe.outputs.reachable` - `fail-fast: false` on the matrix so one down host doesn't kill the others' deploys - `deploy-rs` wired in as a flake input (`nixpkgs` follows) and added to the runner's `hostPackages` so the runner can actually invoke it - left for later: nothing pending - `brigid` itself still owes its real install/enroll from #72
new deploy pipeline
All checks were successful
CI / check (pull_request) Successful in 1m21s
CI / deploy (athena) (pull_request) Has been skipped
CI / deploy (ishtar) (pull_request) Has been skipped
CI / deploy (minerva) (pull_request) Has been skipped
CI / build (athena) (pull_request) Successful in 20s
CI / build (ishtar) (pull_request) Successful in 35s
CI / build (minerva) (pull_request) Successful in 22s
CI / dry-activate (athena) (pull_request) Successful in 12s
CI / dry-activate (ishtar) (pull_request) Successful in 9s
CI / dry-activate (minerva) (pull_request) Successful in 14s
755af3a527
updated CI.yaml
Some checks failed
CI / setup (pull_request) Successful in 5s
CI / check (pull_request) Successful in 1m48s
CI / deploy (pull_request) Failing after 0s
ccca62573f
reee
All checks were successful
CI / check (pull_request) Successful in 1m47s
CI / deploy (pull_request) Has been skipped
CI / build (pull_request) Successful in 1m32s
CI / dry-activate (pull_request) Successful in 26s
84c3282021
added brigid to checks
All checks were successful
CI / check (pull_request) Successful in 1m44s
CI / deploy (pull_request) Has been skipped
CI / build (pull_request) Successful in 1m29s
CI / dry-activate (pull_request) Successful in 36s
e2e8629432
lament scheduled this pull request to auto merge when all checks succeed 2026-07-09 21:54:06 -05:00
lament merged commit 08f71db68e into main 2026-07-09 21:55:03 -05:00
lament deleted branch deploy 2026-07-09 21:55:03 -05:00
lament referenced this pull request from a commit 2026-07-09 21:55:05 -05:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
lament/pantheon!74
No description provided.