Skip to content

🚀 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 ?

  1. Allez dans Google Play Console
  2. Sélectionnez votre application
  3. Allez dans Configuration > Accès à l'API
  4. Cliquez sur Créer un nouveau compte de service
  5. Suivez les instructions pour créer le compte dans Google Cloud Console
  6. Téléchargez le fichier JSON du compte de service
  7. Revenez dans Play Console et accordez les permissions :
  8. Releases : Gérer les versions de production et de test
  9. 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

  1. Allez dans votre repository GitHub
  2. Settings > Secrets and variables > Actions
  3. Cliquez sur New repository secret
  4. 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)

  1. Allez dans Actions > Build and Deploy Android
  2. Cliquez sur Run workflow
  3. Laissez "Déployer sur le Play Store" décoché
  4. 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)

  1. Allez dans Actions > Build and Deploy Android
  2. Cliquez sur Run workflow
  3. Cochez "Déployer sur le Play Store"
  4. Choisissez le track : internal (recommandé pour les tests)
  5. 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

  1. GitHub : Vérifiez que le workflow s'est terminé avec succès (✅)
  2. Releases : Vérifiez que la release a été créée avec les fichiers
  3. 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.

  1. Le fichier JSON est-il complet ?
  2. 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 :

  1. Mettre à jour la version
  2. Mettre à jour les notes de version
  3. Lancer le workflow
  4. ✅ L'application est déployée !

Besoin d'aide ? Consultez la documentation ou vérifiez les logs du workflow dans GitHub Actions.