From 97c4e702502d44919ec8dd5a9759a86b2276d5e4 Mon Sep 17 00:00:00 2001 From: DuN0Z Date: Sat, 11 Oct 2025 10:04:05 +0200 Subject: [PATCH] Add: workflow update nixos --- content/posts/workflow-update-nixos-en.md | 58 +++++++++++++++++++++++ content/posts/workflow-update-nixos-fr.md | 53 +++++++++++++++++++++ 2 files changed, 111 insertions(+) create mode 100644 content/posts/workflow-update-nixos-en.md create mode 100644 content/posts/workflow-update-nixos-fr.md diff --git a/content/posts/workflow-update-nixos-en.md b/content/posts/workflow-update-nixos-en.md new file mode 100644 index 0000000..a61942b --- /dev/null +++ b/content/posts/workflow-update-nixos-en.md @@ -0,0 +1,58 @@ ++++ +date = '2025-10-13T00:00:01+02:00' +draft = false +title = 'NixOs update workflow' ++++ + +I update my NixOS systems once a week, on Sundays. +Gone are the days of frantic updates on Arch Linux for a package that changes twice a day! + +I start on my desktop machine by updating the repositories and freezing the versions in Git. +It’s my anchor point — the one that validates a successful update. + +``` +nix flake update +git add flake.lock +git commit -m "FLAKE: update" +git push origin master +``` + +Then I update the desktop itself, with a bit of cleanup. +I keep eight days of generations, which means I always have a complete, stable version from the previous week. + +``` +sudo nixos-rebuild switch --flake $HOME/nixos-config#pennsardin --show-trace --keep-going +nix-collect-garbage --delete-older-than 8d +sudo nix-collect-garbage --delete-older-than 8d +``` +Next comes the server. +I start by pulling the flake update, then rebuild: + +``` +ssh dunoz@terre-neuvas +cd nixos-config +git pull +sudo nixos-rebuild switch --flake $HOME/nixos-config#terre-neuvas --show-trace --keep-going +nix-collect-garbage --delete-older-than 8d +sudo nix-collect-garbage --delete-older-than 8d +``` + +## And if it breaks? + +If an update goes wrong, I simply revert to the previous flake version on the desktop. + +``` +git revert HEAD +git push origin master +sudo nixos-rebuild switch --flake $HOME/nixos-config#pennsardin +``` + +Then on then server: + +``` +git pull +sudo nixos-rebuild switch --flake $HOME/nixos-config#pennsardin +``` + +I could use rollback, but that would create a mismatch between the Git repository and the machines — something I don’t want. +The Git repo is the sanctuary, the one that governs everything. diff --git a/content/posts/workflow-update-nixos-fr.md b/content/posts/workflow-update-nixos-fr.md new file mode 100644 index 0000000..67c643a --- /dev/null +++ b/content/posts/workflow-update-nixos-fr.md @@ -0,0 +1,53 @@ ++++ +date = '2025-10-13T00:00:01+02:00' +draft = false +title = 'Workflow de mise à jour' ++++ + +Je met mes système NixOs à jour une fois par semaine, le dimanche. Fini le temps des mises à jour effrénées sous Archlinux pour un paquet 2 fois par jour ! +Je commence sur ma machine desktop par mettre à jour les dépot et à figer les versions dans le git. C'est mon point d'ancrage, celui qui validera une mise à jour aboutie. + +``` +nix flake update +git add flake.lock +git commit -m "FLAKE: update" +git push origin master +``` + +Ensuite je met à jour ma machine desktop avec un peu de nettoyage. Je le fait à 8 jours, si bien que je suis sur d'avoir la génération complète de la semaine dernière. + +``` +sudo nixos-rebuild switch --flake $HOME/nixos-config#pennsardin --show-trace --keep-going +nix-collect-garbage --delete-older-than 8d +sudo nix-collect-garbage --delete-older-than 8d +``` +Et je passe au serveur. Je commence par récupérer la version du flake et je met à jour : + +``` +ssh dunoz@terre-neuvas +cd nixos-config +git pull +sudo nixos-rebuild switch --flake $HOME/nixos-config#terre-neuvas --show-trace --keep-going +nix-collect-garbage --delete-older-than 8d +sudo nix-collect-garbage --delete-older-than 8d +``` + +## Et si ça pète ? + +En cas de soucis de mise à jour, je reviens à l'ancienne version du flake sur la machine desktop. + +``` +git revert HEAD +git push origin master +sudo nixos-rebuild switch --flake $HOME/nixos-config#pennsardin +``` + +Et sur la machine serveur + +``` +git pull +sudo nixos-rebuild switch --flake $HOME/nixos-config#pennsardin +``` + +Je pourrai rollback, mais dans ce cas, il y aurai une dissonance entre depot git et machines, ce que je ne souhaite pas. +Le depot git est le sanctuaire, celui qui régit tout.