chaton59 commited on
Commit
63dbf2d
·
1 Parent(s): 7069e97

fix: add app.py placeholder and update README YAML for HF Space

Browse files
Files changed (2) hide show
  1. app.py +6 -0
  2. 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).*