feat: Migrate Android deployment workflow to macOS runner, simplifying setup steps and updating Fastlane descriptions.
Some checks failed
Deploy Flutter to Firebase (Mac) / deploy-android (push) Failing after 22s

This commit is contained in:
Van Leemput Dayron
2025-12-13 12:25:39 +01:00
parent c63124b16b
commit 088f4a2833
2 changed files with 20 additions and 41 deletions

View File

@@ -1,55 +1,40 @@
name: Deploy Flutter to Firebase
name: Deploy Flutter to Firebase (Mac)
on:
push:
branches: release # Vous avez changé la branche ici, c'est noté
branches: release
jobs:
deploy-android:
runs-on: ubuntu-latest
# C'est ici que la magie opère : on cible VOTRE Mac
runs-on: macos-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Setup Java
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '17'
# Pas besoin d'installer Java, Flutter ou Android SDK : ils sont déjà sur votre Mac !
- name: Setup Android SDK
uses: android-actions/setup-android@v3
- name: Vérifier l'installation
run: flutter doctor -v
- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
channel: 'stable'
cache: false
- name: Accept Android Licenses
run: yes | flutter doctor --android-licenses || true
- name: Setup Ruby (pour Fastlane)
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.3'
bundler-cache: true
- name: Installer les dépendances
run: flutter pub get
- name: Créer le fichier .env
run: echo "${{ secrets.ENV_FILE }}" > .env
- name: Créer le fichier Auth Google
- name: Créer les identifiants Firebase
run: echo "${{ secrets.FIREBASE_CREDENTIALS }}" > ./android/firebase_credentials.json
- name: Créer key.properties
run: echo "${{ secrets.ANDROID_KEY_PROPERTIES }}" > ./android/key.properties
- name: Lancer Fastlane Android
- name: Lancer Fastlane
working-directory: ./android
env:
ANDROID_KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }}
FIREBASE_ANDROID_APP_ID: ${{ secrets.FIREBASE_ANDROID_APP_ID }}
# --- C'EST ICI LA CORRECTION CRITIQUE POUR LA MÉMOIRE ---
GRADLE_OPTS: "-Dorg.gradle.daemon=false -Dorg.gradle.jvmargs=-Xmx3072m"
# Plus besoin de limiter la RAM, votre Mac est puissant !
run: |
bundle install
bundle exec fastlane deploy_firebase

View File

@@ -1,35 +1,29 @@
default_platform(:android)
platform :android do
desc "Déploiement AAB vers Firebase"
desc "Deploy to Firebase from Mac"
lane :deploy_firebase do
# --- DÉBUT DU BLOC CRITIQUE ---
# C'est ici qu'on crée le fichier keystore physiquement sur le serveur
# avant que Gradle ne le cherche.
# 1. Création du Keystore depuis le secret Gitea
if ENV['ANDROID_KEYSTORE_BASE64']
# On décode le secret Gitea et on l'écrit dans un fichier .jks
File.open("upload-keystore.jks", "wb") do |f|
f.write(Base64.decode64(ENV['ANDROID_KEYSTORE_BASE64']))
end
UI.message("✅ Fichier upload-keystore.jks créé avec succès !")
else
UI.user_error!("❌ ERREUR : Le secret ANDROID_KEYSTORE_BASE64 est vide !")
UI.error("Secret Keystore manquant !")
end
# --- FIN DU BLOC CRITIQUE ---
# 2. Construire l'App Bundle (.aab)
# Gradle va maintenant trouver le fichier créé juste au-dessus
# 2. Build de l'App Bundle (AAB)
# Votre Mac va compiler ça très vite 🚀
sh("flutter build appbundle --release")
# 3. Envoyer vers Firebase
# 3. Envoi vers Firebase App Distribution
firebase_app_distribution(
app: ENV["FIREBASE_ANDROID_APP_ID"],
service_credentials_file: "firebase_credentials.json",
groups: "testers",
# On pointe bien vers le fichier .aab généré
android_artifact_path: "../build/app/outputs/bundle/release/app-release.aab",
release_notes: "Version AAB via Gitea. Commit: #{ENV['GITHUB_SHA']}"
release_notes: "Build depuis Mac M1/M2. Commit: #{ENV['GITHUB_SHA']}"
)
end
end