Skip to content

Sprint 3 - SVG Analysis & CI/CD Optimization

Recherche Astro MCP : SVG optimization expérimentale

Conclusion documentation :

  • L’optimisation SVG expérimentale d’Astro ne s’applique qu’aux SVG importés comme composants
  • Exemple applicable : import Logo from '../assets/logo.svg' puis <Logo />
  • Ne s’applique pas aux SVG utilisés comme fichiers statiques via liens HTML

Fichiers SVG détectés :

  • src/assets/favicon.svg
  • src/assets/logo.svg

Utilisation analysée :

  • favicon.svg : Utilisé comme <link rel="icon" href="/favicon.svg" /> dans BaseHead.astro
  • logo.svg : Non utilisé dans le code (présent dans assets mais pas référencé)

Conclusion :

  • Les SVG sont utilisés comme fichiers statiques, PAS comme composants importés
  • L’optimisation SVG expérimentale d’Astro ne s’applique PAS
  • Action requise : Aucune optimisation SVG nécessaire

Les SVG sont déjà optimisés pour leur usage actuel (fichiers statiques). Aucune configuration d’optimisation supplémentaire n’est nécessaire.

  • ✅ Les SVG fonctionnent correctement comme fichiers statiques
  • ✅ Favicon s’affiche correctement dans le navigateur
  • ✅ Aucun problème de performance détecté

Note pour le futur : Si des SVG sont ajoutés et importés comme composants, considérer l’activation de l’optimisation SVG expérimentale :

import { defineConfig, svgoOptimizer } from "astro/config";
export default defineConfig({
experimental: {
svgOptimizer: svgoOptimizer()
}
});

  • ✅ Page 404 personnalisée créée (src/content/docs/404.md)
  • ✅ URL production mise à jour (https://amn-dev.anderson-metsanou.workers.dev/)
  • ✅ Corrections TypeScript (PageTitle.astro, SearchModal.astro)
  • ⏳ Packages patch/minor (à lancer manuellement)
  • ✅ dotenv 18 installé (compatible avec .env actuel)
  • ✅ Vitest configuré et fonctionnel (2/2 tests)
  • ✅ Typecheck, lint, build, dev server tous OK
  • ✅ Optimisation MDX non activée (1 fichier seulement)
  • ✅ Sanity Visual Editing fonctionnel
  • Raison : Instabilité Vite 8/Rolldown avec Sanity Visual Editing
  • Impact : Performance légèrement réduite mais stabilité préservée
  • Future : Réévaluer quand Sanity confirme compatibilité Vite 8
  • React : Reste sur 4.4.2 (évite breaking changes majeurs)
  • TypeScript : Reste sur 5.9.3 (compatible avec Astro 7.3.4)
  • Vite : Reste sur 7.3.6 (stable avec Sanity Visual Editing)

DOC : Consultation de la documentation GitHub Actions

Section titled “DOC : Consultation de la documentation GitHub Actions”

Workflows analysés :

  • .github/workflows/deploy-dev.yml
  • .github/workflows/deploy-prod.yml

Conclusion :

  • Les workflows n’avaient pas d’étape de tests avant le build
  • Les tests manquaient pour détecter les régressions avant déploiement

Intégration proposée :

  • Ajouter une étape “Run tests” avant le build dans les deux workflows
  • Exécuter : pnpm run test, pnpm run typecheck, pnpm run lint
  • Emplacement : Après pnpm install --frozen-lockfile, avant pnpm run build

Bénéfices :

  • Échoue le déploiement si les tests ne passent pas
  • Détecte les régressions avant déploiement
  • Maintient la qualité du code

deploy-dev.yml - Ajouté :

- name: Run tests
run: |
pnpm run test
pnpm run typecheck
pnpm run lint

deploy-prod.yml - Ajouté :

- name: Run tests
run: |
pnpm run test
pnpm run typecheck
pnpm run lint
  • ✅ Les tests passent localement (Vitest, typecheck, lint)
  • ✅ Les workflows sont syntaxiquement corrects
  • ⏳ À valider sur la prochaine PR/déploiement

Note pour le futur :

  • Les tests s’exécuteront automatiquement sur chaque déploiement
  • Si un test échoue, le déploiement sera bloqué
  • Les tests doivent être maintenus à jour avec les nouvelles fonctionnalités