Files
Gato 915d3ce3a7 feat(init): initialisation du projet Angular 19 PWA — v0.0.1
- Angular 19 avec routing, SCSS, PWA (Service Worker + manifest)
- Couverture de tests ≥ 90% configurée dans karma.conf.js
- Docker pour tests isolés (Dockerfile.test + docker-compose.test.yml)
- Image de production multi-stage (Dockerfile + nginx.conf)
- Hook pre-commit bloquant si tests échouent ou couverture < 90%
- CI Gitea (.gitea/workflows/ci.yml) : tests + build/push image Docker
- Versioning SemVer depuis 0.0.1 avec scripts npm version:*
- Feature flags par environnement (src/environments/)
- Documentation fonctionnelle (docs/functional/) et technique (docs/technical/)
- CLAUDE.md avec toutes les règles de développement

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-06 18:52:08 +02:00

43 lines
1.1 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
PROJECT_ROOT="$(git rev-parse --show-toplevel)/Olhar-PWA"
cd "$PROJECT_ROOT"
echo "🔍 Pre-commit: lancement des tests avec couverture..."
# Déterminer le moteur de conteneur disponible
if command -v docker &>/dev/null; then
CONTAINER_CMD="docker"
COMPOSE_CMD="docker compose"
elif command -v podman &>/dev/null; then
CONTAINER_CMD="podman"
COMPOSE_CMD="podman-compose"
else
CONTAINER_CMD=""
fi
if [ -n "$CONTAINER_CMD" ]; then
echo "📦 Exécution des tests via $CONTAINER_CMD..."
$COMPOSE_CMD -f docker-compose.test.yml run --rm test
else
echo "⚠️ Docker/Podman non disponible — exécution locale des tests..."
if [ ! -d "node_modules" ]; then
echo "📥 Installation des dépendances..."
npm ci
fi
npm run test:coverage
fi
EXIT_CODE=$?
if [ $EXIT_CODE -ne 0 ]; then
echo ""
echo "❌ Tests échoués ou couverture insuffisante (<90%)."
echo " Le commit est annulé. Corrigez les erreurs avant de committer."
exit 1
fi
echo "✅ Tests OK — couverture ≥ 90%. Commit autorisé."
exit 0