# Workflow de Release Gitea pour Wasteland ## Vue d'ensemble Ce workflow automatise la création de releases pour le système Wasteland dans Foundry VTT via Gitea Actions. ## Déclenchement Le workflow se déclenche automatiquement lors de la **publication d'une release** sur Gitea : ```yaml on: release: types: [published] ``` ## Étapes du Workflow ### 1. Clone du Repository - Clone le repository Wasteland - Utilise `RouxAntoine/checkout@v3.5.4` ### 2. Extraction du Numéro de Version - Extrait la version depuis le tag de release - Exemple: tag `v1.2.3` → version `1.2.3` - Utilise `battila7/get-version-action@v2` ### 3. Substitution des URLs dans system.json Met à jour automatiquement le `system.json` avec : ```json { "version": "1.2.3", "url": "https://www.uberwald.me/gitea/public/fvtt-wasteland", "manifest": "https://www.uberwald.me/gitea/public/fvtt-wasteland/releases/download/latest/system.json", "download": "https://www.uberwald.me/gitea/public/fvtt-wasteland/releases/download/v1.2.3/fvtt-wasteland.zip" } ``` ### 4. Création du ZIP Crée `fvtt-wasteland.zip` contenant : - `system.json` (mis à jour) - `README.md` - `changelog.md` - `assets/` - `lang/` - `modules/` - `packs/` - `styles/` - `templates/` - `template.json` **Note:** Exclut `node_modules/`, `less/`, `gulpfile.js`, etc. ### 5. Upload vers Gitea - Upload du ZIP et du system.json vers la release - Utilise le secret `ALLOW_PUSH_RELEASE` ### 6. Publication sur Foundry VTT - Notifie le site officiel Foundry VTT de la nouvelle version - Utilise le secret `FOUNDRYVTT_RELEASE_TOKEN` - Compatibilité: Foundry V13 ## Secrets Requis Dans les paramètres du repository Gitea, configurer : 1. **`ALLOW_PUSH_RELEASE`** - Token Gitea avec droits d'écriture sur releases - Généré dans : Paramètres utilisateur → Applications → Tokens 2. **`FOUNDRYVTT_RELEASE_TOKEN`** - Token du Foundry Package Creator - Obtenu sur : https://foundryvtt.com/packages/edit/fvtt-wasteland ## Comment Créer une Release ### Méthode 1: Via l'Interface Gitea 1. Aller sur `https://www.uberwald.me/gitea/public/fvtt-wasteland` 2. Cliquer sur "Releases" 3. Cliquer sur "New Release" 4. Remplir : - **Tag version**: `v1.2.3` (respecter le format `vX.Y.Z`) - **Release title**: `Version 1.2.3 - Description courte` - **Description**: Changelog détaillé 5. Cocher "This is a pre-release" si applicable 6. Cliquer sur "Publish Release" ### Méthode 2: Via Git CLI ```bash # Créer et pousser le tag git tag -a v1.2.3 -m "Version 1.2.3 - Description" git push origin v1.2.3 # Puis créer la release via l'interface Gitea ``` ## Déroulement Automatique 1. ✅ Détection de la publication de release 2. ✅ Clone du repository 3. ✅ Extraction de la version depuis le tag 4. ✅ Mise à jour du system.json 5. ✅ Création du ZIP 6. ✅ Upload sur Gitea 7. ✅ Publication sur Foundry VTT ## Vérification Après publication, vérifier : 1. **Sur Gitea** : `https://www.uberwald.me/gitea/public/fvtt-wasteland/releases` - Le ZIP `fvtt-wasteland.zip` est disponible - Le `system.json` est disponible - Les URLs sont correctes 2. **Sur Foundry VTT** : https://foundryvtt.com/packages/fvtt-wasteland - La nouvelle version apparaît - Le manifest pointe vers le bon fichier 3. **Dans Foundry** : - Installer/Mettre à jour le système - Vérifier que tout fonctionne ## URLs Importantes - **Repository**: https://www.uberwald.me/gitea/public/fvtt-wasteland - **Releases**: https://www.uberwald.me/gitea/public/fvtt-wasteland/releases - **Manifest (latest)**: https://www.uberwald.me/gitea/public/fvtt-wasteland/releases/download/latest/system.json - **Foundry Package**: https://foundryvtt.com/packages/fvtt-wasteland ## Troubleshooting ### Le workflow ne se déclenche pas - Vérifier que la release est bien **published** (pas draft) - Vérifier que le fichier `.gitea/workflows/release.yaml` existe ### Erreur lors de la création du ZIP - Vérifier que tous les dossiers existent - Vérifier les permissions ### Erreur lors de la publication Foundry - Vérifier que `FOUNDRYVTT_RELEASE_TOKEN` est configuré - Vérifier que l'ID du package est correct (`fvtt-wasteland`) ### Les URLs ne sont pas mises à jour - Vérifier le format du tag (doit être `vX.Y.Z`) - Vérifier que `microsoft/variable-substitution` fonctionne ## Exemple de Changelog Pour `v1.2.3` : ```markdown # Version 1.2.3 - Améliorations Fiches Créatures ## Nouvelles Fonctionnalités - Ajout de dropdowns pour niveaux de compétences créatures - Message de bienvenue stylé - Grille 2x2 pour valeurs de combat ## Corrections - Fix dialog render error - Fix attribute selection - Fix predilection reroll ## Améliorations - Interface créature alignée avec personnage - Styles cohérents pour tous les messages - Documentation complète ``` ## Notes - Le workflow utilise Ubuntu latest - Go 1.20.1+ est installé pour l'action de release - Le système est compatible avec Foundry V13 - Les packs sont inclus dans le ZIP (format NeDB/LevelDB)