Intégration de Firebase App Distribution dans la chaîne CI d’un projet Android

4min read • 2025-02-05Cloud IconDevOps/Cloud
 Intégration de Firebase App Distribution dans la chaîne CI d’un projet Android

Introduction

Dans le contexte du développement des applications Android, il est primordial d'intégrer une étape de test avant de mettre l'application à disposition pour les utilisateurs finaux. Firebase propose un outil de distribution d'APK qui simplifie ce processus en mettant à disposition des testeurs des APK téléchargeables correspondant aux différentes versions (bêta) de l'application. Cette approche facilite la communication des évolutions et des nouvelles fonctionnalités de l'application aux testeurs. Pour automatiser la distribution des APK, il est essentiel d'intégrer Firebase dans les pipelines d'intégration continue (CI) du projet. Cet article est dédié à discuter en détail comment intégrer Firebase pour optimiser le processus de développement d'applications Android.

Firebase App Distribution Overview

Firebase App Distribution est un outil puissant développé par Google, simplifiant de manière significative le processus de distribution des versions bêta d'une application Android à un groupe de testeurs.

Dans un scénario où le développement d’une application Android nécessite la collecte des retours d’une équipe de test sur les modifications apportées à l’application tout au long du processus de développement, Firebase App Distribution automatise l’ensemble des tâches de génération des APK, l’envoie des notifications aux testeurs pour les télécharger, et la gestion des versions disponibles.

Pourquoi intégrer Firebase App Distribution avec le processus CI ?

L’intégration de Firebase App Distribution dans un processus d'intégration continue (CI) améliore considérablement le flux de travail de développement du projet. Lorsque le code dans le répertoire du projet subit un changement, le pipeline CI se déclenche automatiquement. Il exécute généralement des tests et génère un fichier APK prêt à être distribué. En ajoutant Firebase App Distribution, le pipeline peut automatiquement distribuer la version bêta aux testeurs désignés dans la configuration du plugin, éliminant ainsi la distribution manuelle. Cette intégration économise du temps, réduit la marge d’erreur, et favorise une collaboration plus efficace entre les développeurs et les testeurs.

Prérequis

  • Une organisation sur Google cloud (parent du projet Firebase)
  • Un projet Firebase
  • Un projet Android (gradle)
  • Pipeline CI/CD (Jenkins pipeline dans notre cas)

Configuration de Firebase App Distribution

Avant d'intégrer Firebase dans votre application Android, vous devez tout d'abord créer un projet Firebase pour établir la connexion avec l'application. Ensuite, enregistrez l'application dans le projet nouvellement créé.

L’étape suivante consiste à obtenir le fichier de configuration Firebase en cliquant sur l'icône de téléchargement, puis l’ajouter au niveau du module de l'application (module App).

1_lR3wm1tct74xgP-clOzcSg.webp

Les projets Firebase s’occupe des comptes de service Google, qui peuvent être employés pour appeler les API du serveur Firebase depuis le serveur d'application ou un environnement autorisé. Pour authentifier le compte de service SDK admin Firebase et l'autoriser à accéder aux services Firebase, il faut générer un fichier de clé privée au format JSON et puis l’ajouter sur un chemin accessible tel que project/app/src/privateKey.json

1_Bk-eHFrf_R418O6kgSW17Q (1).webp

Dans le fichier Gradle situé à la racine du projet, ajouter les plugins des services Google en tant que dépendances. Par exemple la syntaxe buildscript :

dependencies {
    classpath "com.google.gms:google-services:4.3.15"
    classpath "com.google.firebase:firebase-appdistribution-gradle:4.0.0"
    // ...
}

Dans le fichier Gradle de votre module (module app), ajoutez les plugins des services Google :

plugins {
    id 'com.google.gms.google-services'
    id 'com.google.firebase.appdistribution'
    //...
}

Puis ajoutez des SDK Firebase à votre application en ajoutant au fichier Gradle du module app les dépendances pour les produits Firebase à utiliser.

dependencies {

    implementation(platform("com.google.firebase:firebase-bom:32.2.0"))
    implementation("com.google.firebase:firebase-analytics-ktx")
    // ...
}

La dernière étape est la configuration des propriétés de distribution. Dans le fichier Gradle du module app, configurez App Distribution en ajoutant au moins une section firebaseAppDistribution .

Par exemple, pour distribuer la version release de l’environnement recette :

android {

    // ...
  
    buildTypes {
        debug {...}
        release {...}
    }
  
    productFlavors {
      //...
        recette {
              //..
              firebaseAppDistribution {
                  serviceCredentialsFile = "./app/src/privateKey.json"
                  artifactType = "APK"
                  releaseNotes = "sample release note"
                  testers = appDistributionTestersEmailList
              }
        }
    }
}

Pour plus d’informations sur les saveurs de produit et les types de build, vous pouvez consulter la doc :

https://developer.android.com/studio/build/build-variants

N’oublier pas d’activer Firebase App distribution dans la Console Firebase. Pour ce faire, accédez à la section "App Distribution" et suivez les instructions pour activer le service. Vous devrez accepter les conditions d'utilisation

Intégration de Firebase App Distribution avec un pipeline CI

Dans cet exemple, nous utilisons Jenkins pour l’intégration continue et Gradle pour la distribution de l’application. Au niveau du script du pipeline, ajoutez un stage de distribution de l’APK, de préférence positionné juste avant celui du déploiement.

stage('App distribution') {

        when { 
            branch 'recette'
        }

        steps {
           sh './gradlew assembleRelease appDistributionUploadRecetteFullRelease '
        }
}

Conformément à la configuration des propriétés de distribution dans le build.gradle, nous procédons à la distribution de la version recette full release. Ainsi, à chaque mise à jour du code source dans la branche recette, Firebase App Distribution distribuera automatiquement la nouvelle version aux testeurs désignés, simplifiant le process de distribution dans le cadre du pipeline CI. Cela garantit que les testeurs disposent toujours de la version la plus récente.

Conclusion

L’intégration de Firebase App Distribution avec le processus d’intégration continue (CI) d’un projet Android offre une solution efficace pour la réduction du “time to market” en simplifiant le mécanisme de distribution des APK aux testeurs et améliorant la collaboration entre les équipes de développement et de test. La configuration est relativement simple, et en suivant les bonnes pratiques, les différentes équipes du projet peuvent contribuer à la livraison rapide d’une application mobile de haute qualité.

AIT BOUAZIZ BilalWritten By AIT BOUAZIZ BilalDevops & Cloud ConsultantXelops Technology