levr/content/posts/workflow-update-nixos.fr.md
2025-10-13 20:38:31 +02:00

1.7 KiB

+++ 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.