149 lines
5.5 KiB
Markdown
149 lines
5.5 KiB
Markdown
# 🔄 Mises à jour automatiques
|
|
|
|
Plus besoin d'envoyer un `.exe` à chaque correctif. L'application va chercher
|
|
elle-même la dernière version publiée.
|
|
|
|
```
|
|
Toi Ton collègue
|
|
─── ────────────
|
|
npm run release -- 0.3.0 "…"
|
|
│
|
|
├─ construit + signe l'installeur
|
|
├─ le dépose sur Supabase
|
|
└─ écrit latest.json
|
|
au lancement :
|
|
lit latest.json → 0.3.0 > 0.2.0
|
|
🔔 « Version 0.3.0 disponible »
|
|
clic → installe → redémarre
|
|
```
|
|
|
|
---
|
|
|
|
## Installation (une seule fois)
|
|
|
|
### 1. Créer le bucket
|
|
|
|
Supabase → **SQL Editor** → **New query** → colle
|
|
[`supabase/releases_bucket.sql`](supabase/releases_bucket.sql) → **Run**.
|
|
|
|
### 2. Donner au script la clé de publication
|
|
|
|
Supabase → **Settings → API** → copie la clé **`service_role`**.
|
|
|
|
Mets-la dans le fichier `.env.local` à la racine du projet :
|
|
|
|
```env
|
|
SUPABASE_SERVICE_ROLE_KEY=eyJhbGciOi...
|
|
```
|
|
|
|
> `.env.local` est ignoré par git (règle `*.local`). Cette clé sert **uniquement**
|
|
> à téléverser depuis ta machine : elle n'entre jamais dans l'application
|
|
> distribuée à l'équipe.
|
|
|
|
### 3. 🔑 Sauvegarder la clé de signature — **le point important**
|
|
|
|
Le fichier `.tauri-signing-key.local` à la racine du projet signe chaque mise à
|
|
jour. Les applications déjà installées **n'acceptent que** les paquets signés
|
|
avec cette clé.
|
|
|
|
> ⚠️ **Si tu la perds, aucune mise à jour ne pourra plus être installée.**
|
|
> Il faudrait générer une nouvelle clé, reconstruire, et redistribuer un `.exe`
|
|
> à la main à chaque membre de l'équipe.
|
|
|
|
Copie-la maintenant dans un endroit sûr — gestionnaire de mots de passe, clé USB,
|
|
disque de sauvegarde. **Pas** dans le dépôt git.
|
|
|
|
### 4. La dernière distribution manuelle
|
|
|
|
Les versions déjà installées chez tes collègues ne connaissent pas encore le
|
|
système de mise à jour. Il faut donc leur livrer **une dernière fois** un
|
|
installeur à la main :
|
|
|
|
```bash
|
|
npm run tauri:build
|
|
```
|
|
|
|
Envoie le fichier `src-tauri/target/release/bundle/nsis/GameDev Tracker_0.2.0_x64-setup.exe`.
|
|
|
|
C'est le dernier. À partir de cette version, tout est automatique.
|
|
|
|
---
|
|
|
|
## Publier une nouvelle version
|
|
|
|
```bash
|
|
npm run release -- 0.3.0 "Filtres multiples sur les tâches, correction du Kanban"
|
|
```
|
|
|
|
Le script :
|
|
|
|
1. écrit `0.3.0` dans `package.json` et `tauri.conf.json` ;
|
|
2. construit et **signe** l'installeur (quelques minutes) ;
|
|
3. le téléverse dans le bucket `releases` ;
|
|
4. écrit `latest.json` — c'est ce fichier que les applications lisent.
|
|
|
|
Ensuite, pense à valider les deux fichiers de version :
|
|
|
|
```bash
|
|
git add package.json src-tauri/tauri.conf.json && git commit -m "v0.3.0"
|
|
```
|
|
|
|
### Quel numéro de version ?
|
|
|
|
Format `X.Y.Z`, toujours croissant.
|
|
|
|
| Ce que tu as fait | Numéro |
|
|
|---|---|
|
|
| Correction de bug | `0.2.0` → `0.2.1` |
|
|
| Nouvelle fonctionnalité | `0.2.1` → `0.3.0` |
|
|
| Refonte, changement cassant | `0.3.0` → `1.0.0` |
|
|
|
|
Le texte entre guillemets s'affiche dans le bandeau chez tes collègues : écris
|
|
ce qui **change pour eux**, pas le détail technique.
|
|
|
|
---
|
|
|
|
## Côté équipe : ce qu'ils voient
|
|
|
|
Une bande fine en haut de l'application :
|
|
|
|
```
|
|
┌────────────────────────────────────────────────────────────────────┐
|
|
│ ✨ Version 0.3.0 disponible. Filtres multiples sur les tâches │
|
|
│ [⬇ Installer et redémarrer] [✕ plus tard]│
|
|
└────────────────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
- Jamais de fenêtre bloquante : on peut ignorer et continuer à travailler.
|
|
- « Plus tard » masque le bandeau ; la proposition revient au lancement suivant.
|
|
- Vérification au démarrage, puis toutes les 2 heures pour les sessions longues.
|
|
- Le menu **Aide** (touche `?`) affiche la version installée et un bouton
|
|
« Rechercher une mise à jour ».
|
|
|
|
---
|
|
|
|
## En cas de problème
|
|
|
|
| Symptôme | Cause probable | Solution |
|
|
|---|---|---|
|
|
| Aucun bandeau n'apparaît | `latest.json` absent ou version identique | Ouvre l'URL du manifeste dans un navigateur, vérifie le champ `version` |
|
|
| « Signature invalide » | L'installeur a été signé avec une autre clé | Republie avec la bonne `.tauri-signing-key.local` |
|
|
| Le script dit « bucket not found » | Étape 1 non faite | Exécute `supabase/releases_bucket.sql` |
|
|
| Le script dit « clé introuvable » | `.tauri-signing-key.local` absent | Restaure ta sauvegarde (étape 3) |
|
|
| Le téléchargement échoue chez un membre | Bucket non public | Rejoue `releases_bucket.sql` |
|
|
|
|
URL du manifeste (à ouvrir dans un navigateur pour vérifier) :
|
|
|
|
```
|
|
https://<ton-projet>.supabase.co/storage/v1/object/public/releases/latest.json
|
|
```
|
|
|
|
---
|
|
|
|
## Coût
|
|
|
|
Un installeur pèse ~8 Mo. L'offre gratuite Supabase donne 1 Go de stockage et
|
|
5 Go de transfert par mois : à 6 personnes, c'est environ **100 mises à jour par
|
|
mois** avant de s'en approcher. Tu peux supprimer les vieux installeurs du
|
|
bucket de temps en temps (garde le dernier).
|