'app flutter cicd gitlab' est une application présentant le fonctionnement d'une CI/CD avec une application Flutter.
Les différentes étapes de cette implémentation sont :
Pour une CI/CD seulement pour Android :
- Lancement des tests unitaires
- Build l'app
- APK pour Android
- Déploiement APK
- Dans App distribution pour toutes les MR
Pour une CI/CD pour Android et iOS :
- Lancement des tests unitaires
- Build l'app
- APK pour Android
- IPA pour iOS
- Déploiement APK/IPA
- Dans App distribution pour toutes les MR
- Installer Flutter sur votre pc
- Projet GitLab
- Firebase CLI et se connecter en local
Vous désirez une CI/CD pour une application Android ?
--> Récupérer le contenu du fichier .gitlab-ci_android.yml dans votre fichier .gitlab-ci.yml
Vous désirez une CI/CD pour une application Android et iOS ?
--> Récupérer le contenu du fichier .gitlab-ci_android_and_ios.yml dans votre fichier .gitlab-ci.yml
Dans un premier temps il faut se connecter à Firebase et créer un projet.
Il est nécessaire d'initialiser une application Android, pour cela :
- Aller dans App Distribution
- Cliquer sur l'icône Android
- Nom du package : com.enterprise.example_app
- Nom de mon application : Example App
- Cliquer sur 'Enregistrer l'application'
- Puis 'Suivant'
- 'Suivant'
- 'Accéder à la console'
Sur la console App Distribution, cliquer sur 'Commencer', vous voici dans l'App distribution de votre application Android
Dans l'app distribution, aller dans l'onglet 'Testeurs et groupes', puis :
- Cliquer sur "Ajouter un groupe"
- Saisir le nom de groupe : qa-team
- Puis ajouter autant d'adresses mail que nécessaire
Créez le projet dans Firebase. A la racine du projet exécutez cette commande :
$ firebase init
- Remplir par 'y' pour "You are initializing in an existing Firebase project directory"
- Choisir 'Hosting'
- Choisir 'Use an existing project'
- Choisir votre application
- Appuyer sur 'entrée' pour 'public'
- Remplir par 'N' pour 'Configure as a single-page app (rewrite all urls to /index.html)?'
- Supprimer le dossier 'public'
Sur votre poste, exécuter cette commande :
$ firebase projects:list
Récupérer l'id de votre PROJET puis:
$ firebase use id_de_votre_projet
$ firebase login:ci
Connectez-vous, puis, dans le terminal vous devez récupérer la clé générée. Elle commence par 1/*****.
Coller cette clé dans une variable d'environnement de GitLab sur votre Projet:
- Nom de la variable : FIREBASE_TOKEN_CLI
- Value de la variable : 1/*****
Aller dans la console Firebase puis dans l'onglet 'Vue d'ensemble du projet':
- Cliquer sur votre application Android (L'icône Android)
- Puis aller dans les paramètres récupérer l'ID de l'application commençant par 1:****
- Créer une variable dans GitLab en remplissant comme suit :
- key = APP_ID_FIREBASE_ANDROID
- value = 1:****
Seulement si vous avez choisi le fichier gitlab-ci_android_and_ios
- Un Mac ou un serveur Mac (ex : Mac stadium)
- Une licence Apple developper (pour la compilation)
- Créer un runner GitLab CI sur votre mac ATTENTION : Pour l'étape 'Register the runner', sélectionner l'executor ssh
- Installer sur votre mac Flutter
- Installer sur votre mac Firebase
Associez votre Runner Mac sur votre projet GitLab. Pour cela, allez sur votre projet GitLab et suivez ces instructions :
- Cliquer sur 'Settings' de votre projet Gitlab
- Onglet 'CI / CD'
- Déplier 'Runners'
- Sélectionner votre runner en cliquant sur 'Enable for this project'
- Cliquer sur 'Disable shared Runners' pour désactiver tous les autres runners
Dans un premier temps, il faut se connecter à Firebase
Pour cela, il est nécessaire d'initialiser une application iOS :
- Aller dans 'Vue d'ensemble du projet'
- Cliquer sur '+ Ajouter une application'
- Cliquer sur l'icon IOS
- Nom du package : com.enterprise.example_app
- Nom de mon application : Example App
- Cliquer sur Enregistrer l'application
- Puis 'Suivant'
- 'Suivant'
- 'Accéder à la console'
- Cliquer sur 'App Distribution'
- Choisir l'application iOS
- Cliquer sur 'Commencer'
Vous voici dans l'App distribtuion de votre application IOS
Aller dans la console Firebase puis dans l'onglet 'Vue d'ensemble du projet':
- Cliquer sur votre application iOS (L'icône iOS)
- Puis aller dans les paramètres récupérer l'ID de l'application commençant par 1:****
- Créer une variable dans GitLab en remplissant comme suit :
- key = APP_ID_FIREBASE_IOS
- value = 1:****