Files
TravelMate/Jenkinsfile

73 lines
2.7 KiB
Groovy

pipeline {
agent any
tools {
jdk 'jdk-17' // Replace with the name configured in Jenkins > Manage Jenkins > Tools
}
environment {
// On pointe vers le dossier SDK Android
ANDROID_HOME = "${env.HOME}/android-sdk"
// On définit le JAVA_HOME pour corriger l'erreur de compilateur
JAVA_HOME = "/usr/lib/jvm/java-17-openjdk-amd64"
// --- CORRECTION ICI ---
// Une SEULE ligne PATH qui combine : Java + /usr/local + Flutter + Android + PATH existant
PATH = "${JAVA_HOME}/bin:/usr/local/bin:/opt/flutter/bin:${env.HOME}/android-sdk/cmdline-tools/latest/bin:${env.HOME}/android-sdk/platform-tools:${env.PATH}"
// On récupère vos secrets
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'
}
}
}