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>
This commit is contained in:
Executable
+42
@@ -0,0 +1,42 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user