Déploiement CapRover : site statique construit sur le PC, servi par Caddy
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
14d1186e84
commit
84998608d5
Executable
+46
@@ -0,0 +1,46 @@
|
||||
#!/usr/bin/env bash
|
||||
# Publie la branche main sur CapRover (voir docs/deploiement.md).
|
||||
#
|
||||
# Le site est construit et testé sur le PC, puis envoyé sous forme d'archive :
|
||||
# le serveur ne fait que copier les fichiers dans une image Caddy.
|
||||
#
|
||||
# Prérequis : CLI caprover (via fnm) connecté à la machine CapRover
|
||||
# (caprover login).
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
CAPROVER_MACHINE="${CAPROVER_MACHINE:-sans-pub}"
|
||||
CAPROVER_APP="${CAPROVER_APP:-ustagammon}"
|
||||
|
||||
die() {
|
||||
echo "Erreur : $1" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
cd "$(git rev-parse --show-toplevel)"
|
||||
|
||||
# La CLI caprover est installée avec Node par fnm.
|
||||
if ! command -v caprover >/dev/null && command -v fnm >/dev/null; then
|
||||
eval "$(fnm env --shell bash)"
|
||||
fnm use --silent-if-unchanged lts-latest >/dev/null || true
|
||||
fi
|
||||
command -v caprover >/dev/null || die "CLI caprover introuvable (voir docs/deploiement.md)"
|
||||
|
||||
# On ne publie que main, propre et identique à origin/main.
|
||||
[ "$(git branch --show-current)" = "main" ] || die "lancer le déploiement depuis la branche main"
|
||||
git diff --quiet HEAD || die "des modifications ne sont pas commitées"
|
||||
git fetch -q origin main
|
||||
[ "$(git rev-parse main)" = "$(git rev-parse origin/main)" ] \
|
||||
|| die "main diffère d'origin/main : git pull (ou fusionner la MR) d'abord"
|
||||
|
||||
# Le jeton CapRover expire ; caprover ls ne le vérifie pas.
|
||||
caprover api -n "$CAPROVER_MACHINE" -t /user/system/info -m GET -d '{}' -o false >/dev/null 2>&1 \
|
||||
|| die "session CapRover expirée : lancer caprover login dans un terminal"
|
||||
|
||||
echo "Vérification avant publication : make lint et make test"
|
||||
make lint
|
||||
make test
|
||||
|
||||
make package
|
||||
echo "Publication de main ($(git rev-parse --short main)) sur l'app $CAPROVER_APP"
|
||||
caprover deploy -n "$CAPROVER_MACHINE" -a "$CAPROVER_APP" -t build/ustagammon.tar
|
||||
Reference in New Issue
Block a user