CharacterManager

📩 Script de Release - Create-Release.ps1

⚡ Utilisation Rapide

# Créer une nouvelle version patch (défaut)
.\Create-Release.ps1

# Créer une nouvelle version minor (nouvelles fonctionnalités)
.\Create-Release.ps1 -VersionType minor

# Créer une nouvelle version major (ruptures majeures)
.\Create-Release.ps1 -VersionType major

🎯 Objectif

Un seul script pour automatiser TOUT le processus de crĂ©ation d’une nouvelle version:

  1. ✅ Increment-Version.ps1 - IncrĂ©mente le numĂ©ro de version
  2. ✅ Sync-InnoSetupVersion.ps1 - Synchronise la version avec Inno Setup
  3. ✅ publish.ps1 - Publie l’application
  4. ✅ Build-Installer.ps1 - Compile l’installateur Windows

📊 Types de Version

MAJOR.MINOR.PATCH

Exemples:
- patch:  0.12.0 → 0.12.1  (corrections de bugs)
- minor:  0.12.0 → 0.13.0  (nouvelles fonctionnalitĂ©s)
- major:  0.12.0 → 1.0.0   (ruptures majeures)

Quand utiliser?

Type Cas d’usage Exemple
patch Corrections de bugs, optimisations 0.12.0 → 0.12.1
minor Nouvelles fonctionnalitĂ©s rĂ©trocompatibles 0.12.0 → 0.13.0
major Changements majeurs, breaking changes 0.12.0 → 1.0.0

📋 PrĂ©requis

🚀 Workflow Complet

Avant de relancer

  1. Tester l’application
    dotnet run --project CharacterManager
    
  2. Valider les tests
    dotnet test
    
  3. Vérifier le build
    dotnet build
    
  4. Mettre Ă  jour CHANGELOG.md
    • Ajouter les changements pour la nouvelle version
    • Utiliser le format Keep a Changelog

Lancer la release

# Exemple: créer version 0.13.0 (minor)
.\Create-Release.ps1 -VersionType minor

AprĂšs la release

  1. Valider les fichiers générés
    publish/                    - App publiée
    publish/installer/          - Installateur compilé
    
  2. Tester l’installateur
    .\publish\installer\CharacterManager-Setup.exe
    
  3. Créer un tag Git (optionnel)
    git tag v0.13.0
    git push --tags
    

📂 RĂ©sultats

AprÚs exécution réussie:

✅ Version incrĂ©mentĂ©e
   CharacterManager/appsettings.json: Version changée

✅ Inno Setup synchronisĂ©
   CharacterManager.iss: Version mise Ă  jour

✅ Application publiĂ©e
   publish/
   ├── bin/
   ├── wwwroot/
   └── ...

✅ Installateur compilĂ©
   publish/installer/
   └── CharacterManager-Setup.exe (~150-200 MB)

🐛 Troubleshooting

Le script ne démarre pas?

# Vérifier les droits d'exécution
Get-ExecutionPolicy

# Autoriser si nécessaire
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Erreur “iscc not found”?

# Vérifier que Inno Setup est installé
ls "C:\Program Files (x86)\Inno Setup 6\"

# Relancer le script
.\Create-Release.ps1

Erreur de compilation?

  1. Vérifier la syntaxe C# : dotnet build
  2. Vérifier les tests : dotnet test
  3. Vérifier appsettings.json existe
  4. Relancer le script

Erreur lors de la publication?

# Nettoyer le build
dotnet clean

# Relancer
.\Create-Release.ps1 -VersionType patch

💡 Tips & Tricks

Afficher les informations avant de relancer

# Voir la version actuelle
$json = Get-Content .\CharacterManager\appsettings.json | ConvertFrom-Json
$json.AppInfo.Version

Automatiser avec Task Scheduler (Windows)

Créer une tùche planifiée pour relancer automatiquement à une heure donnée:

# Dans Task Scheduler:
# DĂ©clencheur: À 22:00 le dimanche
# Action: powershell.exe -ExecutionPolicy Bypass -File Create-Release.ps1 -VersionType patch

CI/CD avec GitHub Actions

# .github/workflows/release.yml
name: Release
on:
  schedule:
    - cron: '0 22 * * 0'  # Dimanche 22:00

jobs:
  release:
    runs-on: windows-latest
    steps:
      - uses: actions/checkout@v2
      - name: Create Release
        run: .\Create-Release.ps1 -VersionType patch

📚 Fichiers AssociĂ©s

Fichier Description
Create-Release.ps1 Script principal (ce fichier)
Increment-Version.ps1 Incrémente la version
Sync-InnoSetupVersion.ps1 Synchronise Inno Setup
publish.ps1 Publie l’app
Build-Installer.ps1 Compile installateur
CHANGELOG.md Historique des versions
RELEASE_NOTES.md Notes de release

✅ Checklist Avant Release

🎉 C’est prĂȘt!

Vous pouvez maintenant créer une nouvelle version en une seule commande:

.\Create-Release.ps1

L’application sera automatiquement:

  1. ✅ VersionnĂ©e
  2. ✅ PubliĂ©e
  3. ✅ PackagĂ©e avec Inno Setup
  4. ✅ PrĂȘte pour la distribution

Bonne release! 🚀