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
Some checks failed
Deploy Flutter to Firebase (Mac) / deploy-android (push) Failing after 22s
This commit is contained in:
@@ -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
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user