Dans ce guide, nous allons découvrir comment construire une application Android et la déployer pour des tests en utilisant la distribution d’applications Firebase via GitHub Actions.
Explication de GitHub Actions : GitHub Actions est un service CI/CD qui automatise le processus de construction, de test et de déploiement. Vous pouvez configurer des workflows pour automatiser le processus de construction et de test de votre application pour chaque demande de tirage ou poussée vers votre dépôt, ou même déployer votre application en production lors de la fusion des demandes de tirage.
Pour Commencer :
- Si votre projet est déjà sur GitHub, passez aux étapes suivantes.
- Inscrivez-vous sur GitHub si ce n’est pas déjà fait, créez un nouveau dépôt et poussez le code de votre projet dessus.
Construire Votre Projet Android :
- Dans votre dépôt GitHub, naviguez jusqu’à l’onglet Actions et recherchez le workflow Android CI.
- GitHub Actions permet une configuration facile de CI/CD via un fichier de workflow
.github/workflows/android.yml
. Ce fichier définira votre processus de construction, y compris la configuration de JDK 11, l’octroi des permissions d’exécution à Gradle, et l’exécution de la construction.
name: Android CI/CD
on:
pull_request:
branches:
- 'main'
push:
branches:
- 'main'
jobs:
test:
name: Run Unit Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: set up JDK 11
uses: actions/setup-java@v1
with:
java-version: 11
- name: Unit tests
run: bash ./gradlew test --stacktrace
build:
name: Upload apk to App Tester
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: set up JDK 11
uses: actions/setup-java@v1
with:
java-version: 11
- name: build release
run: bash ./gradlew assembleRelease
- name: upload artifact to Firebase App Distribution
uses: wzieba/Firebase-Distribution-Github-Action@v1
with:
appId: ${{secrets.FIREBASE_APP_ID}}
token: ${{secrets.FIREBASE_TOKEN}}
groups: testers
file: app/build/outputs/apk/release/app-release-unsigned.apk
apk:
name: Generate APK
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.0.1
- name: set up JDK 11
uses: actions/setup-java@v1
with:
java-version: 11
- name: Build debug APK
run: bash ./gradlew assembleDebug --stacktrace
- name: Upload APK
uses: actions/upload-artifact@v1
with:
name: app
path: app/build/outputs/apk/debug/app-debug.apk
Exécution des Tests Unitaires :
- Les tests unitaires sont essentiels pour garantir le bon fonctionnement des unités de votre application. Nous intégrerons les tests unitaires dans notre workflow pour exécuter automatiquement les tests à chaque poussée.
Construire l’APK :
- Les applications Android nécessitent une construction de débogage pour les tests et une construction de sortie pour le déploiement sur les magasins d’applications. Notre workflow générera un APK de débogage et le téléchargera en utilisant GitHub Actions.
Déploiement sur la Distribution d’Applications Firebase :
- Assurez-vous que votre application est enregistrée dans Firebase et que vous avez un jeton Firebase. Ajoutez ce jeton et votre identifiant d’application Firebase comme secrets dans votre dépôt GitHub.
- Configurez une étape de Distribution d’Applications Firebase dans votre workflow pour distribuer automatiquement votre application aux testeurs.
Configuration Finale du Workflow :
- Le workflow
android.yml
final inclura des étapes pour exécuter les tests unitaires, générer un APK de débogage et distribuer l’application via la Distribution d’Applications Firebase. - Lors d’un nouveau commit, GitHub Actions exécutera automatiquement votre workflow défini, vous permettant de voir les étapes de construction et de test en action.
Configuration de la Distribution d’Applications Firebase :
- Dans Firebase, créez un groupe de testeurs et ajoutez les adresses e-mail de vos testeurs.
- Mettez à jour votre workflow pour inclure l’étape de Distribution d’Applications Firebase, en spécifiant votre identifiant d’application, votre jeton et votre groupe de testeurs.
Conclusion : Intégrer CI/CD avec GitHub Actions et la Distribution d’Applications Firebase offre un processus rationalisé pour le développement et les tests d’applications Android. Cette configuration automatise les constructions, les tests et le déploiement, permettant aux développeurs de se concentrer davantage sur le développement de fonctionnalités et moins sur les processus manuels. La combinaison de GitHub Actions et Firebase améliore l’efficacité et la fiabilité de la livraison d’applications Android de qualité.