Le 2026-11-09, make deploy-prod a affiché un succès (code de sortie 0) alors que rien n'avait été publié : https://ustagammon.sans.pub/version.json servait toujours 3cdd017 au lieu de 809b5ec. Le journal montre deux choses :
le jeton CapRover avait expiré : « Your auth token for sans-pub ... is not valid anymore » ;
la CLI a demandé le mot de passe, la demande a été fermée faute de terminal (ExitPromptError), et le script s'est terminé avec un code 0.
Deux défauts sont en cause :
La vérification de session en amont (caprover api) ne détecte pas l'expiration. Reproduit : sans terminal, caprover api affiche la demande de mot de passe et rend 0.
Le script fait confiance au code de retour de caprover deploy, qui rend 0 lui aussi.
Quoi
Session expirée : le script s'arrête avant de construire, avec « session CapRover expirée : lancer caprover login dans un terminal ».
Version publiée : après l'envoi, le script vérifie pendant 2 minutes au plus que le site sert bien le commit publié. Sinon, il échoue et indique la version servie.
Comment
Avant de construire : caprover api est appelé avec stdin fermé. Il échoue si son code de retour est non nul, ou si sa sortie contient « password » ou « not valid anymore ».
Envoi : caprover deploy est lui aussi lancé avec stdin fermé, pour ne jamais rester bloqué sur une demande de mot de passe.
Après l'envoi : le script interroge SITE_URL/version.json (adresse par défaut : https://ustagammon.sans.pub) toutes les 5 s, en ajoutant un paramètre qui contourne les caches.
Choix et compromis
Contrôler le résultat réel, c'est-à-dire la version servie, plutôt que de se fier aux codes de retour de la CLI, qui se sont révélés trompeurs.
Délai de 2 minutes : la propagation observée jusqu'ici prenait de quelques secondes à 30 s.
Risques et déploiement
Le script ne fait que vérifier davantage, il ne publie rien de plus. Le seul effet possible est un faux échec si le site met plus de 2 minutes à servir la nouvelle version. Dans ce cas, relancer ou vérifier à la main.
Comment vérifier
make lint et make test. Avec une session expirée, make deploy-prod échoue maintenant immédiatement. Après caprover login, il se termine par « Publié : https://ustagammon.sans.pub sert ».
Hors périmètre
La connexion elle-même (caprover login) reste manuelle : elle demande le mot de passe de Pierre.
## Pourquoi
Le 2026-11-09, make deploy-prod a affiché un succès (code de sortie 0) alors que rien n'avait été publié : https://ustagammon.sans.pub/version.json servait toujours 3cdd017 au lieu de 809b5ec. Le journal montre deux choses :
- le jeton CapRover avait expiré : « Your auth token for sans-pub ... is not valid anymore » ;
- la CLI a demandé le mot de passe, la demande a été fermée faute de terminal (ExitPromptError), et le script s'est terminé avec un code 0.
Deux défauts sont en cause :
1. La vérification de session en amont (caprover api) ne détecte pas l'expiration. Reproduit : sans terminal, caprover api affiche la demande de mot de passe et rend 0.
2. Le script fait confiance au code de retour de caprover deploy, qui rend 0 lui aussi.
## Quoi
- **Session expirée** : le script s'arrête avant de construire, avec « session CapRover expirée : lancer caprover login dans un terminal ».
- **Version publiée** : après l'envoi, le script vérifie pendant 2 minutes au plus que le site sert bien le commit publié. Sinon, il échoue et indique la version servie.
## Comment
- **Avant de construire** : caprover api est appelé avec stdin fermé. Il échoue si son code de retour est non nul, ou si sa sortie contient « password » ou « not valid anymore ».
- **Envoi** : caprover deploy est lui aussi lancé avec stdin fermé, pour ne jamais rester bloqué sur une demande de mot de passe.
- **Après l'envoi** : le script interroge SITE_URL/version.json (adresse par défaut : https://ustagammon.sans.pub) toutes les 5 s, en ajoutant un paramètre qui contourne les caches.
## Choix et compromis
- **Contrôler le résultat réel**, c'est-à-dire la version servie, plutôt que de se fier aux codes de retour de la CLI, qui se sont révélés trompeurs.
- **Délai de 2 minutes** : la propagation observée jusqu'ici prenait de quelques secondes à 30 s.
## Risques et déploiement
Le script ne fait que vérifier davantage, il ne publie rien de plus. Le seul effet possible est un faux échec si le site met plus de 2 minutes à servir la nouvelle version. Dans ce cas, relancer ou vérifier à la main.
## Comment vérifier
make lint et make test. Avec une session expirée, make deploy-prod échoue maintenant immédiatement. Après caprover login, il se termine par « Publié : https://ustagammon.sans.pub sert <commit> ».
## Hors périmètre
La connexion elle-même (caprover login) reste manuelle : elle demande le mot de passe de Pierre.
Generated with Claude Code https://claude.com/claude-code
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Pourquoi
Le 2026-11-09, make deploy-prod a affiché un succès (code de sortie 0) alors que rien n'avait été publié : https://ustagammon.sans.pub/version.json servait toujours
3cdd017au lieu de809b5ec. Le journal montre deux choses :Deux défauts sont en cause :
Quoi
Comment
Choix et compromis
Risques et déploiement
Le script ne fait que vérifier davantage, il ne publie rien de plus. Le seul effet possible est un faux échec si le site met plus de 2 minutes à servir la nouvelle version. Dans ce cas, relancer ou vérifier à la main.
Comment vérifier
make lint et make test. Avec une session expirée, make deploy-prod échoue maintenant immédiatement. Après caprover login, il se termine par « Publié : https://ustagammon.sans.pub sert ».
Hors périmètre
La connexion elle-même (caprover login) reste manuelle : elle demande le mot de passe de Pierre.
Generated with Claude Code https://claude.com/claude-code