Déployer une application Python Flask via en CI/CD grâce aux Github Actions

Depuis longtemps je voulais tester la possibilité de pouvoir utiliser les outils actuels pour gérer du code (GitLab, GitHub) pour déployer sur un hébergement Simple Hosting de Gandi.net.

Les hébergements web Gandi.net disposent d’un accès git pour déployer du code, mais à l’origine je pense que cela avait été pensé pour pousser directement le code depuis son poste local vers l’hébergement. Sachant que le code (PHP, Python, ou Node.js) est buildé ensuite sur l’instance Simple Hosting.

N’étant pas développeur ni familier avec les Github Actions, j’ai un peu galéré ! Mais j’ai finalement réussi !! Et c’est vraiment cool.

Le repo Github est ici : https://github.com/MaelDre/bbgenerator

Et le résultat en ligne visible ici : https://bibigen.bougetb.fr

Voyons rapidement comment ça marche 

Le code de l’application Flask se trouve dans le répertoire BBGen/.
Le wrapper Flask est app.py et enfin le wsgy.py permet de lancer l’application sur l’hébergement Gandi.net (voir la documentation à ce sujet).

Le scénario Github Actions se trouve dans .github/workflows/python-app.yml et c’est là la partie intéressante:

  • Je commence par déclarer et télécharger les dépendances (flake8 et pytest), 
  • Puis les tests s’enchaînent avec ces deux librairies,
  • Ensuite, j’envoie (si pas déjà présente) une clé publique SSH, sur l’intance d’hébergement Gandi, qui correspond à une clé privée stockée dans les Secrets du projet sur Github,
  • Je pousse le code sur l’hébergement, 
  • et je lance le build+deploy de l’application.
,