🚀 Configuration GitHub Actions - Guide rapide
Ce guide vous aide à configurer le déploiement automatique de Yin Shi sur le Google Play Store via GitHub Actions.
✅ Ce qui a été fait
- ✅ Workflow GitHub Actions créé (
flutter_android_build.yml) - ✅ Script de configuration des secrets (
scripts/setup-github-secrets.sh) - ✅ Documentation complète (
.github/DEPLOYMENT.md) - ✅ Fichiers de notes de version (
distribution/whatsnew/)
🎯 Prochaines étapes
1️⃣ Créer un compte de service Google Play
Pourquoi ? Pour permettre à GitHub Actions de publier automatiquement sur le Play Store.
Comment ?
- Allez dans Google Play Console
- Sélectionnez votre application
- Allez dans Configuration > Accès à l'API
- Cliquez sur Créer un nouveau compte de service
- Suivez les instructions pour créer le compte dans Google Cloud Console
- Téléchargez le fichier JSON du compte de service
- Revenez dans Play Console et accordez les permissions :
- ✅ Releases : Gérer les versions de production et de test
- ✅ App access : Afficher les informations de l'application
2️⃣ Configurer les secrets GitHub
Option A : Script automatique (recommandé)
cd ~/Sources/yinshi
./scripts/setup-github-secrets.sh
Le script vous guidera pour configurer tous les secrets nécessaires.
Option B : Configuration manuelle
- Allez dans votre repository GitHub
- Settings > Secrets and variables > Actions
- Cliquez sur New repository secret
- Ajoutez les secrets suivants :
a) Encoder le keystore
cd ~/Sources/yinshi
base64 -w 0 android/upload-keystore.jks > keystore-base64.txt
cat keystore-base64.txt
Copiez le contenu et créez le secret KEYSTORE_BASE64.
b) Ajouter les autres secrets
| Secret | Valeur |
|---|---|
KEYSTORE_PASSWORD |
Votre mot de passe du keystore |
KEY_PASSWORD |
Votre mot de passe de la clé |
KEY_ALIAS |
upload |
PLAY_STORE_SERVICE_ACCOUNT_JSON |
Contenu du fichier JSON du compte de service |
3️⃣ Tester le workflow
Test sans déploiement (recommandé pour le premier test)
- Allez dans Actions > Build and Deploy Android
- Cliquez sur Run workflow
- Laissez "Déployer sur le Play Store" décoché
- Cliquez sur Run workflow
✅ Résultat attendu : Une release GitHub est créée avec les fichiers APK et AAB.
Test avec déploiement (après validation du build)
- Allez dans Actions > Build and Deploy Android
- Cliquez sur Run workflow
- Cochez "Déployer sur le Play Store"
- Choisissez le track : internal (recommandé pour les tests)
- Cliquez sur Run workflow
✅ Résultat attendu : L'application est déployée sur le track "Tests internes" du Play Store.
4️⃣ Vérifier le déploiement
- GitHub : Vérifiez que le workflow s'est terminé avec succès (✅)
- Releases : Vérifiez que la release a été créée avec les fichiers
- Play Console : Vérifiez que la nouvelle version apparaît dans "Tests internes"
🔄 Workflow de déploiement recommandé
Première publication
1. Build sans déploiement → Vérifier les artifacts
2. Déploiement en internal → Tests internes
3. Déploiement en beta → Tests beta (optionnel)
4. Déploiement en production → Tous les utilisateurs
Mises à jour suivantes
1. Incrémenter la version dans pubspec.yaml
2. Mettre à jour les notes de version (distribution/whatsnew/)
3. Lancer le workflow avec déploiement
4. Vérifier dans Play Console
📝 Mettre à jour les notes de version
Avant chaque déploiement, mettez à jour :
Fichier français : distribution/whatsnew/whatsnew-fr-FR
🎉 Nouvelle version X.Y.Z
✨ Nouveautés :
• Fonctionnalité 1
• Fonctionnalité 2
🐛 Corrections :
• Correction 1
• Correction 2
Fichier anglais : distribution/whatsnew/whatsnew-en-US
🎉 New version X.Y.Z
✨ What's new:
• Feature 1
• Feature 2
🐛 Bug fixes:
• Fix 1
• Fix 2
Limite : 500 caractères maximum par fichier.
🛠️ Dépannage
❌ Erreur : "Keystore not found"
Solution : Vérifiez que le secret KEYSTORE_BASE64 est correctement configuré.
# Re-générer le keystore encodé
cd ~/Sources/yinshi
base64 -w 0 android/upload-keystore.jks
❌ Erreur : "Invalid credentials"
Solution : Vérifiez le compte de service Google Play.
- Le fichier JSON est-il complet ?
- Le compte de service a-t-il les bonnes permissions dans Play Console ?
❌ Erreur : "Version code already exists"
Solution : Incrémentez le numéro de build dans pubspec.yaml.
# Avant
version: 1.0.5+23
# Après
version: 1.0.5+24
❌ Erreur : "Package name mismatch"
Solution : Vérifiez que le package name est correct.
- Dans
android/app/build.gradle.kts:net.efvt.yinshi.twa - Dans le workflow :
packageName: net.efvt.yinshi.twa - Dans Play Console : même package name
📚 Documentation complète
Pour plus de détails, consultez :
- Guide de déploiement :
.github/DEPLOYMENT.md - README GitHub Actions :
.github/README.md - Workflow :
.github/workflows/flutter_android_build.yml
🎉 C'est tout !
Une fois configuré, vous pourrez déployer votre application en quelques clics :
- Mettre à jour la version
- Mettre à jour les notes de version
- Lancer le workflow
- ✅ L'application est déployée !
Besoin d'aide ? Consultez la documentation ou vérifiez les logs du workflow dans GitHub Actions.