Adapte le canal aux versions candidates

This commit is contained in:
Alexandre NOEL 2026-09-08 20:15:08 +02:00
commit 465b384c08
3 changed files with 4 additions and 2 deletions

View file

@ -8,6 +8,7 @@ Toutes les modifications importantes du projet sont consignées ici. Le format s
- ajout d’un centre de mises à jour pour les installations hors YunoHost ; - ajout d’un centre de mises à jour pour les installations hors YunoHost ;
- détection directe des releases stables publiées sur le dépôt Forgejo configurable ; - détection directe des releases stables publiées sur le dépôt Forgejo configurable ;
- suivi des préversions uniquement depuis une installation elle-même candidate ou explicitement configurée ;
- vérification SHA-256 obligatoire des archives téléchargées ou téléversées ; - vérification SHA-256 obligatoire des archives téléchargées ou téléversées ;
- sauvegarde complète vérifiée et copie du code avant chaque installation ; - sauvegarde complète vérifiée et copie du code avant chaque installation ;
- restauration automatique du code et des données lorsqu’une migration ou un contrôle échoue ; - restauration automatique du code et des données lorsqu’une migration ou un contrôle échoue ;

View file

@ -234,8 +234,9 @@ final class UpdateService
if (!is_array($releases)) { if (!is_array($releases)) {
throw new RuntimeException(t('updates.release_invalid')); throw new RuntimeException(t('updates.release_invalid'));
} }
$acceptPrereleases = str_contains(self::currentVersion(), '-') || getenv('GLOBINOURS_RELEASES_PRERELEASES') === '1';
foreach ($releases as $release) { foreach ($releases as $release) {
if (!is_array($release) || !empty($release['draft']) || !empty($release['prerelease'])) { if (!is_array($release) || !empty($release['draft']) || (!empty($release['prerelease']) && !$acceptPrereleases)) {
continue; continue;
} }
$version = ltrim(trim((string) ($release['tag_name'] ?? '')), 'vV'); $version = ltrim(trim((string) ($release['tag_name'] ?? '')), 'vV');

View file

@ -23,7 +23,7 @@ Le fichier `SHA256SUMS` contient l’empreinte de l’archive :
0f00000000000000000000000000000000000000000000000000000000000000 globinours-1.0.1.tar.gz 0f00000000000000000000000000000000000000000000000000000000000000 globinours-1.0.1.tar.gz
``` ```
Un fichier nommé `globinours-1.0.1.tar.gz.sha256` peut remplacer `SHA256SUMS`. Les brouillons et préversions Forgejo sont ignorés par le canal stable. Un fichier nommé `globinours-1.0.1.tar.gz.sha256` peut remplacer `SHA256SUMS`. Les brouillons sont toujours ignorés. Une installation candidate accepte les releases marquées comme préversions ; une installation stable les ignore. Un technicien peut exceptionnellement les autoriser avec `GLOBINOURS_RELEASES_PRERELEASES=1`.
L’archive doit contenir un fichier `VERSION`, le dossier `app`, le dossier `migrations` et `public/index.php`, directement ou sous un unique dossier parent. Les dossiers `.env`, `data`, `storage` et `public/media` éventuellement présents sont toujours ignorés. L’archive doit contenir un fichier `VERSION`, le dossier `app`, le dossier `migrations` et `public/index.php`, directement ou sous un unique dossier parent. Les dossiers `.env`, `data`, `storage` et `public/media` éventuellement présents sont toujours ignorés.