Spaces:
Sleeping
Sleeping
chaton59
commited on
Commit
·
63dbf2d
1
Parent(s):
7069e97
fix: add app.py placeholder and update README YAML for HF Space
Browse files- app.py +6 -0
- docs/pipeline.md +38 -0
app.py
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from fastapi import FastAPI
|
| 2 |
+
app = FastAPI()
|
| 3 |
+
|
| 4 |
+
@app.get("/")
|
| 5 |
+
def root():
|
| 6 |
+
return {"status": "Space HF prêt pour ML !"}
|
docs/pipeline.md
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Plan du Pipeline CI/CD
|
| 2 |
+
|
| 3 |
+
## Objectif
|
| 4 |
+
Automatiser tests (qualité code/ML) et déploiement vers Hugging Face Spaces pour un POC scalable. Flux : Push → Tests → Build → Deploy (dev sur branche `dev`, prod sur `main` avec validation manuelle).
|
| 5 |
+
*Choix : GitHub Actions pour simplicité/intégration gratuite ; HF Spaces pour hébergement ML sans infra (GPU si besoin pour inférence). Temps cible <10min par run (vigilance doc).*
|
| 6 |
+
|
| 7 |
+
## Triggers
|
| 8 |
+
- Push sur branches : `dev` (auto-deploy dev), `main` (deploy prod après review).
|
| 9 |
+
- Pull Requests vers `main` (tests + validation avant merge).
|
| 10 |
+
*Choix : Limite à ces branches pour isoler envs ; évite triggers sur features pour perf.*
|
| 11 |
+
|
| 12 |
+
## Étapes du Pipeline (Séquentiel : Tests d'abord, puis Deploy si OK)
|
| 13 |
+
1. **Checkout Code** : Récupère le repo.
|
| 14 |
+
*Outil : `actions/checkout@v4` (standard, rapide).*
|
| 15 |
+
2. **Setup Environnement** : Python 3.10+ (compatible FastAPI/Pytest/SQLAlchemy).
|
| 16 |
+
*Choix : Version fixe pour reproductibilité ML ; cache deps pour accélérer runs futurs.*
|
| 17 |
+
3. **Installation Dépendances** : `pip install -r requirements.txt` + outils tests (pytest, black, flake8).
|
| 18 |
+
*Choix : Inclut lint pour standards code (reco ML : black pour formatage auto).*
|
| 19 |
+
4. **Linting** : Vérifie style (`black --check`, `flake8`).
|
| 20 |
+
*Pourquoi ? Détecte erreurs tôt ; coverage >80% visé pour robustesse.*
|
| 21 |
+
5. **Tests Automatisés** : `pytest --cov=src` (unitaires/fonctionnels API/ML).
|
| 22 |
+
*Choix : Couvre cas critiques (erreurs validation Pydantic, prédictions ML) ; rapport XML pour badges GitHub.*
|
| 23 |
+
6. **Build (Optionnel pour POC)** : Package API (e.g., build Docker si HF le requiert).
|
| 24 |
+
*Évolutif : Ajoute plus tard pour prod.*
|
| 25 |
+
7. **Déploiement** : Push vers HF Space (dev/prod).
|
| 26 |
+
*Choix : Conditionnel par branche ; utilise secrets pour HF_TOKEN (sécurité).*
|
| 27 |
+
|
| 28 |
+
## Gestion Envs et Secrets
|
| 29 |
+
- **Devs** : Branche `dev` → Space `ton-username/espace-dev` (tests rapides).
|
| 30 |
+
- **Test/Prod** : PR → `main` → Space `espace-prod` (review requise).
|
| 31 |
+
- **Secrets** : HF_TOKEN (GitHub Secrets) ; jamais en code.
|
| 32 |
+
*Choix : Sépare envs pour traçabilité (inputs/outputs ML en DB PostgreSQL plus tard).*
|
| 33 |
+
|
| 34 |
+
## Standards Code/ML
|
| 35 |
+
- Format : Black.
|
| 36 |
+
- Tests : >80% coverage ; reproductibles (seeds pour ML).
|
| 37 |
+
- Monitoring : Badges GitHub pour coverage/status.
|
| 38 |
+
*Pourquoi ? Assure fiabilité en prod ; aligné sur reco OpenClassrooms (ressource doc).*
|