francoismari / elyze

198 stars 36 forks source link

Ajouter un peu de CI/CD #27

Open apomalyn opened 2 years ago

apomalyn commented 2 years ago

Maintenant que l'application est open-source, il va y avoir du monde qui va proposer des modifications de code (Pull-request). Histoire de facilité l'acceptation de ses changements sans mettre en péril la qualité du code il faudrait mettre en place un CI (Continuous Integration), je propose comme suit:

CI executer à chaque modification et création d'une Pull-Request:

  1. Check le changement de version
  2. Check si le linter relève des problèmes (lié à #6)
  3. Executer le formatting du code (même chose, devrait être lié à #6)
  4. Execute les tests (pour l'instant il y en a pas, mais ça ferait pas de mal! 😄)
  5. Compile l'application pour Android et iOS (disponible au téléchargement directement depuis la PR pour test final à la main)

Si l'une de ses étapes échouent, la PR ne devrait pas pouvoir être validé et merged (ajouté au code principal). Cette partie est, selon moi, très importante.

CI executer à ajout de code dans la branche principale:

  1. Compile l'application pour Android et iOS
  2. Tag la branche avec la version
  3. Créer une pré-release avec les build Android et iOS

En ce qui concerne le CD (Continuous Delivery), ce serait pour plus tard, mais l'idée serait d'automatiser la procédure de déploiement histoire de limiter les erreurs et accélerer la fréquence des déploiements. Si je peux suggérer un outil ce serait Fastlane. On s'entend que cette partie serait vraiment pour le futur de l'application et n'est absolument pas nécessaire pour le moment.

Histoire de limiter les frais, et surtout limité la quantité de third-parties, je conseillerait d'utiliser Github Actions pour créer les dits pipelines 😄