cd backend
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --host 127.0.0.1 --port 8000cd frontend
python3 -m http.server 5173curl -s -X POST http://127.0.0.1:8000/tasks \
-H "Content-Type: application/json" \
-d '{"title":"Écrire tests API","description":"Ajouter des assertions sur /tasks"}' | jqcurl -s http://127.0.0.1:8000/tasks | jqcurl -s -X PUT http://127.0.0.1:8000/tasks/1 \
-H "Content-Type: application/json" \
-d '{"status":"DONE"}' | jqcurl -i -X DELETE http://127.0.0.1:8000/tasks/1Créez un fichier .env dans le dossier backend/ avec le contenu suivant :
API_KEY=devsecops-demo-secret-CHANGEME
Ne poussez jamais votre vraie clé dans le dépôt !
Ajoutez dans votre .env :
DATABASE_URL=CHANGEME
Pour vérifier la qualité du code JavaScript et CSS dans le dossier frontend/ :
-
Installe ESLint et Stylelint (si besoin) : npm install -g eslint stylelint stylelint-config-standard
-
Pour vérifier le JS : cd frontend eslint app.js
-
Pour vérifier le CSS : stylelint styles.css
Adaptez les règles dans .eslintrc.json et .stylelintrc.json selon vos besoins.
Pour générer un rapport de couverture :
pytest --cov=app backend/tests
Le rapport s’affichera dans le terminal. Pour un rapport HTML :
pytest --cov=app --cov-report=html backend/tests
Le dossier htmlcov/ contiendra le rapport détaillé.
Pour exécuter les tests backend, installez aussi httpx :
pip install -r backend/requirements.txt
Cela installera toutes les dépendances nécessaires (dont httpx pour les tests FastAPI).
Pour exécuter tous les tests backend avec la couverture :
pip install -r backend/requirements.txt
pip install pytest-benchmark
PYTHONPATH=backend pytest --cov=backend/app backend/tests
Cela garantit que toutes les dépendances de test sont installées et que les imports fonctionnent.
- Lint et tests unitaires backend (pytest, flake8) et frontend (ESLint, Jest, Playwright) sont lancés à chaque push/pull request.
- Les images Docker backend et frontend sont construites automatiquement.
- Scan de vulnérabilités sur les images Docker et la recette docker-compose avec Trivy.
- Les images sont poussées sur GitHub Container Registry (ghcr.io).
- Un fichier docker-compose.yml permet de lancer l’ensemble localement ou en production.
- Tout est automatisé via GitHub Actions dans .github/workflows/ci.yml.
docker-compose up --build- Backend : http://localhost:8000
- Frontend : http://localhost:8080
- Modifier les tags dans le workflow CI si besoin.
- Les scans Trivy sont visibles dans les logs CI.
Pour toute question, voir le workflow ou les Dockerfile pour adapter à vos besoins.