ci: Migrate Android Play Store deployment from GitHub Actions to Jenkins using Fastlane.
This commit is contained in:
64
Jenkinsfile
vendored
Normal file
64
Jenkinsfile
vendored
Normal file
@@ -0,0 +1,64 @@
|
||||
pipeline {
|
||||
agent any
|
||||
|
||||
environment {
|
||||
// On pointe vers le dossier SDK qu'on a installé dans le HOME de l'utilisateur jenkins
|
||||
ANDROID_HOME = "${env.HOME}/android-sdk"
|
||||
// On ajoute Flutter et les outils Android au PATH pour cette session
|
||||
PATH = "/opt/flutter/bin:${env.HOME}/android-sdk/cmdline-tools/latest/bin:${env.HOME}/android-sdk/platform-tools:$PATH"
|
||||
|
||||
// On récupère vos secrets stockés dans Jenkins
|
||||
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'
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user