name: Deploy Flutter to Firebase (Mac) on: push: branches: release jobs: deploy-android: runs-on: macos-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Vérifier l'installation Flutter run: flutter doctor -v - name: Installer les dépendances Flutter run: flutter pub get - name: Créer les fichiers secrets run: | echo "${{ secrets.ENV_FILE }}" > .env echo "${{ secrets.FIREBASE_CREDENTIALS }}" > ./android/firebase_credentials.json echo "${{ secrets.ANDROID_KEY_PROPERTIES }}" > ./android/key.properties - name: Lancer Fastlane (Mode Local Strict) working-directory: ./android env: ANDROID_KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }} FIREBASE_ANDROID_APP_ID: ${{ secrets.FIREBASE_ANDROID_APP_ID }} run: | # --- 🛡️ PROTECTION ANTI-SYSTÈME 🛡️ --- # On définit un dossier local pour TOUS les gems (Bundler inclus) # Cela empêche physiquement le script d'aller voir dans /Library/Ruby/Gems/2.6.0 export GEM_HOME=$PWD/vendor/bundle export GEM_PATH=$PWD/vendor/bundle export PATH=$GEM_HOME/bin:$PATH echo "📂 Dossier des Gems forcé à : $GEM_HOME" # Nettoyage de sécurité rm -rf vendor rm -f Gemfile.lock echo "⬇️ Installation de Bundler (en local)..." # Cette commande va maintenant écrire dans ./android/vendor/bundle et non dans le système gem install bundler echo "📦 Installation des dépendances..." bundle install --jobs 4 --retry 3 echo "🚀 Lancement..." bundle exec fastlane deploy_firebase