GitHub Actions Workflows
CI — Lint & Tests
Ce workflow vérifie automatiquement la qualité du code et l’intégrité des tests à chaque modification de fichiers Python.
Déclenchement
Le workflow se déclenche :
- ✅ À chaque push sur les branches
main,features,features/*,fix/*(si des fichiers.pyourequirements*.txtsont modifiés) - ✅ À chaque pull request vers
main - ✅ Manuellement via l’onglet “Actions” → “Run workflow”
Fonctionnement
- Checkout du code : Récupère le code source
- Configuration Python : Installe Python 3.13 avec cache pip
- Installation des dépendances : Pipeline, Streamlit App, outils de lint et pytest
- Vérification PEP8 : Execute
tests/check_pep8.pyviapycodestyle - Erreurs logiques : Analyse
flake8ciblant les erreurs critiques (E9,F63,F7,F82) - Tests unitaires : Lance
pytestavec couverture de code (--cov) - Rapport de couverture : Upload de
coverage.xmlcomme artefact (conservé 7 jours)
Configuration
Les règles de lint sont configurées dans :
.pycodestyle: Configuration principale PEP8.flake8: Configuration avancée (linting logique)
Résolution des erreurs
Si le workflow échoue :
# Vérifier localement
python tests/check_pep8.py
# Auto-corriger les erreurs
autopep8 --in-place --aggressive --aggressive <fichier>
# Ou corriger tout le projet
autopep8 --in-place --aggressive --aggressive --recursive .
CD — Keep-Alive Streamlit App
Ce workflow envoie automatiquement une requête HTTP à l’application Streamlit pour éviter qu’elle ne soit mise en veille par Streamlit Community Cloud.
Contexte
Streamlit Community Cloud met les applications en veille après 7 jours d’inactivité. Un ping quotidien suffit à maintenir l’app active sans surconsommer les minutes GitHub Actions.
Déclenchement
Le workflow se déclenche :
- ⏰ Automatiquement chaque jour à 9h00 UTC (cron
0 9 * * *) - ✅ Manuellement via l’onglet “Actions” → “Run workflow”
Fonctionnement
- Requête HTTP : Un
curlest envoyé vershttps://amazing-mcu-graph.streamlit.app/ - Vérification : La commande échoue si le code HTTP retourné n’est pas 2xx/3xx
Résolution des erreurs
Si le workflow échoue, l’application Streamlit peut être temporairement indisponible. Vérifier :
- L’état de Streamlit Community Cloud
- Les logs de l’application dans le tableau de bord Streamlit
Déploiement de la documentation
La documentation est hébergée sur GitHub Pages et générée automatiquement via Jekyll à partir du dossier docs/.
Stack technique
| Composant | Détail |
|---|---|
| Générateur | Jekyll (intégré à GitHub Pages) |
| Thème | pages-themes/cayman@v0.2.0 (remote theme) |
| Plugin | jekyll-remote-theme |
| Source | Dossier docs/ sur la branche main |
Pipeline de déploiement
flowchart TD
A[Push sur main<br>docs/**] --> B[GitHub Pages<br>détecte les changements]
B --> C[Build Jekyll<br>remote theme Cayman]
C --> D[Génération du<br>site statique]
D --> E[Publication automatique]
E --> F["https://<owner>.github.io/MoviesDB/"]
Configuration
La navigation et les métadonnées du site sont définies dans docs/_config.yml :
title: MoviesDB
description: Documentation du projet Marvel Cinematic Universe Graph
remote_theme: pages-themes/cayman@v0.2.0
plugins:
- jekyll-remote-theme
header_pages:
- index.md
- documentation.md
- neo4j-scripts-guide.md
- Utilisation-script-run_pipeline.md
- imdb-schema.md
- workflow.md
Ajouter une nouvelle page
- Créer le fichier
.mddans le dossierdocs/ - Ajouter l’entrée correspondante dans
header_pagesdedocs/_config.yml - Référencer la page dans le tableau de
docs/index.md - Pousser sur
main— GitHub Pages recompile automatiquement
Activation GitHub Pages
Pour activer GitHub Pages sur un nouveau fork :
- Aller dans Settings → Pages
- Sélectionner Source :
Deploy from a branch - Choisir la branche
mainet le dossier/docs - Sauvegarder — le site est disponible après quelques minutes