pipeline { agent any environment { ANDROID_HOME = "${env.HOME}/android-sdk" // Chemin confirmé par votre capture d'écran JAVA_HOME = "/usr/lib/jvm/java-17-openjdk-amd64" // ✅ On écrit le chemin complet ici aussi pour être 100% sûr PATH = "/usr/lib/jvm/java-17-openjdk-amd64/bin:/usr/local/bin:/opt/flutter/bin:${env.HOME}/android-sdk/cmdline-tools/latest/bin:${env.HOME}/android-sdk/platform-tools:${env.PATH}" STORE_PASS = credentials('android-store-pass') KEY_PASS = credentials('android-key-pass') } stages { stage('Checkout') { steps { // Récupère le code depuis Gitea checkout scm } } stage('Setup Dependencies') { steps { sh 'flutter config --no-analytics' sh 'flutter pub get' } } stage('Build & Deploy Android') { steps { // On injecte les fichiers secrets temporairement withCredentials([ file(credentialsId: 'android-keystore-file', variable: 'KEYSTORE_PATH'), file(credentialsId: 'google-play-json', variable: 'GOOGLE_JSON') ]) { script { // 1. Créer le fichier key.properties pour Gradle // Note : Assurez-vous que votre 'keyAlias' est bien 'key0' (défaut) ou changez-le ici sh """ echo 'storePassword=$STORE_PASS' > android/key.properties echo 'keyPassword=$KEY_PASS' >> android/key.properties echo 'keyAlias=upload' >> android/key.properties echo 'storeFile=$KEYSTORE_PATH' >> android/key.properties """ // 2. Lancer Fastlane dir('android') { // On passe le chemin du JSON via une variable d'environnement à Fastlane sh "GOOGLE_JSON_KEY_PATH='$GOOGLE_JSON' fastlane deploy_internal" } } } } } } post { always { // Sécurité : On supprime le fichier contenant les mots de passe sh 'rm -f android/key.properties' } } }