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:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: release # Vous avez changé la branche ici, c'est noté
|
branches: release
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
deploy-android:
|
deploy-android:
|
||||||
runs-on: ubuntu-latest
|
# C'est ici que la magie opère : on cible VOTRE Mac
|
||||||
|
runs-on: macos-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: Setup Java
|
# Pas besoin d'installer Java, Flutter ou Android SDK : ils sont déjà sur votre Mac !
|
||||||
uses: actions/setup-java@v3
|
|
||||||
with:
|
|
||||||
distribution: 'temurin'
|
|
||||||
java-version: '17'
|
|
||||||
|
|
||||||
- name: Setup Android SDK
|
- name: Vérifier l'installation
|
||||||
uses: android-actions/setup-android@v3
|
run: flutter doctor -v
|
||||||
|
|
||||||
- name: Setup Flutter
|
- name: Installer les dépendances
|
||||||
uses: subosito/flutter-action@v2
|
run: flutter pub get
|
||||||
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: Créer le fichier .env
|
- name: Créer le fichier .env
|
||||||
run: echo "${{ secrets.ENV_FILE }}" > .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
|
run: echo "${{ secrets.FIREBASE_CREDENTIALS }}" > ./android/firebase_credentials.json
|
||||||
|
|
||||||
- name: Créer key.properties
|
- name: Créer key.properties
|
||||||
run: echo "${{ secrets.ANDROID_KEY_PROPERTIES }}" > ./android/key.properties
|
run: echo "${{ secrets.ANDROID_KEY_PROPERTIES }}" > ./android/key.properties
|
||||||
|
|
||||||
- name: Lancer Fastlane Android
|
- name: Lancer Fastlane
|
||||||
working-directory: ./android
|
working-directory: ./android
|
||||||
env:
|
env:
|
||||||
ANDROID_KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }}
|
ANDROID_KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }}
|
||||||
FIREBASE_ANDROID_APP_ID: ${{ secrets.FIREBASE_ANDROID_APP_ID }}
|
FIREBASE_ANDROID_APP_ID: ${{ secrets.FIREBASE_ANDROID_APP_ID }}
|
||||||
# --- C'EST ICI LA CORRECTION CRITIQUE POUR LA MÉMOIRE ---
|
# Plus besoin de limiter la RAM, votre Mac est puissant !
|
||||||
GRADLE_OPTS: "-Dorg.gradle.daemon=false -Dorg.gradle.jvmargs=-Xmx3072m"
|
|
||||||
run: |
|
run: |
|
||||||
bundle install
|
bundle install
|
||||||
bundle exec fastlane deploy_firebase
|
bundle exec fastlane deploy_firebase
|
||||||
@@ -1,35 +1,29 @@
|
|||||||
default_platform(:android)
|
default_platform(:android)
|
||||||
|
|
||||||
platform :android do
|
platform :android do
|
||||||
desc "Déploiement AAB vers Firebase"
|
desc "Deploy to Firebase from Mac"
|
||||||
lane :deploy_firebase do
|
lane :deploy_firebase do
|
||||||
|
|
||||||
# --- DÉBUT DU BLOC CRITIQUE ---
|
# 1. Création du Keystore depuis le secret Gitea
|
||||||
# C'est ici qu'on crée le fichier keystore physiquement sur le serveur
|
|
||||||
# avant que Gradle ne le cherche.
|
|
||||||
if ENV['ANDROID_KEYSTORE_BASE64']
|
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|
|
File.open("upload-keystore.jks", "wb") do |f|
|
||||||
f.write(Base64.decode64(ENV['ANDROID_KEYSTORE_BASE64']))
|
f.write(Base64.decode64(ENV['ANDROID_KEYSTORE_BASE64']))
|
||||||
end
|
end
|
||||||
UI.message("✅ Fichier upload-keystore.jks créé avec succès !")
|
|
||||||
else
|
else
|
||||||
UI.user_error!("❌ ERREUR : Le secret ANDROID_KEYSTORE_BASE64 est vide !")
|
UI.error("Secret Keystore manquant !")
|
||||||
end
|
end
|
||||||
# --- FIN DU BLOC CRITIQUE ---
|
|
||||||
|
|
||||||
# 2. Construire l'App Bundle (.aab)
|
# 2. Build de l'App Bundle (AAB)
|
||||||
# Gradle va maintenant trouver le fichier créé juste au-dessus
|
# Votre Mac va compiler ça très vite 🚀
|
||||||
sh("flutter build appbundle --release")
|
sh("flutter build appbundle --release")
|
||||||
|
|
||||||
# 3. Envoyer vers Firebase
|
# 3. Envoi vers Firebase App Distribution
|
||||||
firebase_app_distribution(
|
firebase_app_distribution(
|
||||||
app: ENV["FIREBASE_ANDROID_APP_ID"],
|
app: ENV["FIREBASE_ANDROID_APP_ID"],
|
||||||
service_credentials_file: "firebase_credentials.json",
|
service_credentials_file: "firebase_credentials.json",
|
||||||
groups: "testers",
|
groups: "testers",
|
||||||
# On pointe bien vers le fichier .aab généré
|
|
||||||
android_artifact_path: "../build/app/outputs/bundle/release/app-release.aab",
|
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
|
||||||
end
|
end
|
||||||
Reference in New Issue
Block a user