Files
fvtt-wasteland/GITEA_RELEASE_WORKFLOW.md

181 lines
5.0 KiB
Markdown

# 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)