Operations Release Process FR - CyberMind-FR/secubox-deb GitHub Wiki
À quoi ça sert. Comment une release SecuBox est coupée (tag v3.0.0-alpha.N), quels workflows tournent, quels fichiers aboutissent sur la release GitHub, et comment vérifier un téléchargement.
Pousser un tag v* lance trois choses en parallèle :
| Workflow | Fichier | Produit |
|---|---|---|
| Release | release.yml |
orchestre la construction des paquets, des images système, du live USB, la publication apt, les notes de release et SHA256SUMS
|
| Build SecuBox .deb packages | build-packages.yml |
les .deb (arm64 et amd64), publiés dans la release et le dépôt |
| Build Installer ISO | build-installer-iso.yml |
l'installateur sans écran (amd64), ISO compressée et image USB |
Un tag contenant alpha, beta ou rc est publié en pré-release. release.yml peut aussi être lancé à la main (workflow_dispatch) : version, construction ou non des images, publication ou non dans le dépôt apt, suite Debian (trixie par défaut).
Les notes de release sont écrites par un heredoc shell dans
release.yml: n'y mettez jamais de backtick, le shell l'exécuterait.
| Fichier | Description |
|---|---|
Images système (secubox-<profil>-<carte>-<suite>.img.gz) |
MOCHAbin, Raspberry Pi 400 et VM x64 ; le profil de chaque carte vient de son config.mk (lite pour l'ESPRESSObin, isp et full ailleurs). Les images ESPRESSObin ne font pas partie des releases planifiées mais se construisent à la demande. |
| Live USB | x64 (GRUB, UEFI et BIOS), Raspberry Pi 400 (kiosque par défaut) et MOCHAbin (U-Boot) ; entrées de démarrage : Live avec persistance, Kiosque, Console TUI, Pont, Installer sur disque, En RAM |
| Installateur |
secubox-installer-amd64-<suite>.iso.gz et .img.gz : démarre puis installe sur le premier disque, sans écran ni clavier. Il efface ce disque.
|
| Scripts |
create-qemu-arm64-vm.sh, create-vbox-vm.sh
|
| Sommes de contrôle |
SHA256SUMS et SHA256SUMS.gpg
|
Les images brutes .img ne sont pas publiées, seulement les compressées.
GitHub refuse tout fichier de release de 2 Gio ou plus. Le workflow du live USB :
- compresse en gzip toute image brute restante ;
-
découpe tout fichier encore supérieur à environ 2 Go en parts de 1900 Mo nommées
<fichier>.part00,<fichier>.part01, ... (cas habituel : l'image Raspberry Pi).
Réassembler, décompresser puis écrire :
cat secubox-<image>.img.gz.part* > secubox-<image>.img.gz
gunzip -c secubox-<image>.img.gz | sudo dd of=/dev/sdX bs=4M status=progress
syncRemplacez /dev/sdX par le bon périphérique (lsblk pour le trouver) ; dd l'efface.
SHA256SUMS liste chaque fichier publié par son nom seul, parts comprises : il fonctionne à côté des fichiers téléchargés. Il est signé en clair (SHA256SUMS.gpg) avec la clé du dépôt [email protected].
gpg --verify SHA256SUMS.gpg
sha256sum -c SHA256SUMSVérifiez les sommes avant de réassembler ou d'écrire. sha256sum -c signale les fichiers absents ; ignorez ceux que vous n'avez pas téléchargés (--ignore-missing).
Les jobs de release livrent ce que les jobs amont ont produit : une carte en échec n'annule pas les autres, et un nouvel essai supprime les fichiers qu'il renvoie. Causes vues : un profil refusé par la porte (scripts/verify-profile.sh, voir Profils), un artefact disparu (BlobNotFound sur le job publish), un runner sans espace disque. Relancer les jobs en échec ; si le tag lui-même doit bouger, supprimer la release partielle avec son tag puis repousser le tag.
- tous les fichiers attendus présents,
SHA256SUMScohérent ; - l'installateur démarre en VM et s'installe sur un disque vierge ;
- le dépôt apt sert les nouvelles versions (Operations-APT-Repository-FR).
Operations-APT-Repository-FR · Operations-Runbook-FR · Live-USB-FR · Installation-FR · Profils · Trixie · Operations-Release-Process