Déployer sur Netlify
Ce guide branche Netlify comme cible de déploiement d’un projet Menestrel. À chaque publication (et à chaque restauration de version), Menestrel appelle le Build Hook : Netlify relance le build de ton site Astro, qui récupère le snapshot publié. Le hook suffit pour reconstruire ; un token API en plus permet de suivre chaque build depuis l’admin, jusqu’à « En ligne » ou « Échec ».
Prérequis : un site Netlify qui build déjà ton projet Astro depuis Git, et un projet Menestrel synchronisé (voir Ton premier site).
-
Créer le Build Hook côté Netlify
Dans Netlify, ouvre ton site puis Site configuration, Build & deploy, Build hooks, et ajoute un hook. Nomme-le
menestrel, choisis la branche de production, puis copie l’URL générée :https://api.netlify.com/build_hooks/xxxxxxxxxxxxxxxxxxxxxxxxMenestrel n’accepte que des URLs
httpssur l’hôteapi.netlify.com. Toute autre URL est rejetée à la création de la cible. -
Connecter la cible dans Menestrel
Dans l’admin, ouvre « Réglages du site », onglet « Déploiement », puis « Connecter un hébergeur ». Choisis le fournisseur Netlify, donne un nom à la cible (par exemple « Prod Netlify ») et colle l’URL du hook dans le champ « URL du deploy hook ». Les deux autres champs sont facultatifs : sans eux, la cible reconstruit déjà le site.
-
Activer le suivi du build (facultatif)
Sans token, Menestrel déclenche le build puis n’en sait plus rien : le déploiement reste « Déclenché » dans la liste. Avec le suivi, il passe par « En construction » puis « En ligne » ou « Échec », avec un lien vers l’URL du déploiement Netlify. Renseigne les deux champs, l’un sans l’autre ne suffit pas :
- « Token API » : un Personal Access Token Netlify (User settings, Applications, Personal access tokens). Menestrel ne s’en sert qu’en lecture, pour lister les déploiements du site.
- « Id de site » : le Site ID de ton site, affiché dans Site configuration, General.
La configuration de la cible, token compris, est chiffrée au repos.
-
Tester la cible
Le bouton « Tester » appelle réellement le hook : Netlify lance un vrai build. C’est voulu, un test qui ne déclenche rien ne prouve rien. Dans la liste des deploys Netlify, le build apparaît avec le titre
Publication Menestrel: <id du snapshot>, ouPublication Menestrel: testsi rien n’est encore publié. -
Poser les variables d’environnement du build
Dans Netlify (Site configuration, Environment variables), pose
MENESTREL_CONTENT_URLsur l’URL du snapshot publié :Fenêtre de terminal MENESTREL_CONTENT_URL=https://content.menestrel.dev/p/prj_xxx/pk_xxxLe build ne dépend alors plus de l’application Menestrel : si l’admin est en maintenance, Netlify reconstruit quand même. Ne pose pas
MENESTREL_TOKENen production. Détail des variables : Variables d’environnement.
Ce que Menestrel envoie à Netlify
Section intitulée « Ce que Menestrel envoie à Netlify »À chaque déclenchement, Menestrel fait un POST sur le hook avec un paramètre d’URL trigger_title valant Publication Menestrel: <id du snapshot>, et un corps JSON {"snapshot_id": "..."}. Chaque build est donc identifiable dans la liste des deploys Netlify : tu sais toujours quelle publication a produit quel build.
Avec le suivi activé, Menestrel interroge GET https://api.netlify.com/api/v1/sites/<site_id>/deploys avec le token : une première fois 15 secondes après le déclenchement, puis à intervalles plus espacés jusqu’à la minute, pendant 45 minutes au plus. Les états Netlify new, enqueued, building et processing s’affichent « En construction » ; ready devient « En ligne » ; error devient « Échec ».
Échecs répétés : mise en pause
Section intitulée « Échecs répétés : mise en pause »Un déclenchement raté est retenté, trois tentatives au plus par build. Après trois échecs consécutifs, la cible passe « En pause » : Menestrel arrête d’appeler un hook qui ne répond plus, plutôt que d’échouer en silence à chaque publication. Corrige la cause (hook supprimé côté Netlify, token révoqué…), puis clique « Reprendre » sur la cible.