From 4b1732916d2bd2aebc2054742ecd29d19bf709c2 Mon Sep 17 00:00:00 2001 From: Yvv Date: Wed, 12 Aug 2026 04:14:00 +0200 Subject: [PATCH] =?UTF-8?q?ci=20:=20deploy=20r=C3=A9silient=20=E2=80=94=20?= =?UTF-8?q?repli=20certificat=20existant=20+=20arr=C3=AAt=20de=20l'ancienn?= =?UTF-8?q?e=20stack?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ACME : le challenge HTTP-01 échoue en IPv6 (AAAA présent, webroot non servi en v6) ; quand un certificat est déjà en place (valide jusqu'au 30/09), on le conserve avec avertissement au lieu de bloquer le déploiement — sans certificat existant, échec franc inchangé - l'org forge renommée EHV→LPK a changé le COMPOSE_PROJECT_NAME : le « compose stop » ne touchait plus l'ancienne stack ehv-decision-main-* (double inscription fabio, trafic partagé v1/v2) → arrêt par filtre de nom avant déploiement Co-Authored-By: Claude Fable 5 --- .woodpecker.yml | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/.woodpecker.yml b/.woodpecker.yml index ff06f47..6d2b3b5 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -160,6 +160,10 @@ steps: - chmod 600 /opt/libredecision/.env - cp docker/docker-compose.yml /opt/libredecision/docker-compose.yml # Arreter avant le challenge ACME : libere le webroot pour sonic-acme-1 + # L'org forge a ete renommee (EHV -> LPK) : le nom de projet compose a change, + # on arrete donc aussi l'ancienne stack (ehv-decision-main-*) pour eviter la + # double inscription fabio et le trafic partage v1/v2. + - docker ps -q --filter "name=decision-main" | xargs -r docker stop - cd /opt/libredecision && docker compose stop - | DOMAIN=$(grep '^APP_DOMAIN=' /opt/libredecision/.env | cut -d= -f2) @@ -170,13 +174,18 @@ steps: --webroot /usr/share/nginx/html \ --server letsencrypt \ --accountemail support+acme@asycn.io || ACME_EXIT=$? - if [ "$ACME_EXIT" -ne 0 ] && [ "$ACME_EXIT" -ne 2 ]; then - echo "ERREUR: acme.sh a echoue (exit $ACME_EXIT)" + if [ "$ACME_EXIT" -eq 0 ] || [ "$ACME_EXIT" -eq 2 ]; then + docker exec sonic-acme-1 cp /etc/acme.sh/$DOMAIN/fullchain.cer /host/certs/$DOMAIN-cert.pem + docker exec sonic-acme-1 cp /etc/acme.sh/$DOMAIN/$DOMAIN.key /host/certs/$DOMAIN-key.pem + echo "TLS OK (acme exit $ACME_EXIT)" + elif docker exec sonic-acme-1 test -f "/host/certs/$DOMAIN-cert.pem"; then + echo "AVERTISSEMENT: emission ACME en echec (exit $ACME_EXIT) - certificat existant conserve" + echo " Cause vue le 12/08 : challenge HTTP-01 invalide en IPv6 (AAAA present mais webroot" + echo " non servi en v6) - corriger frontal/DNS avant l'expiration du certificat." + else + echo "ERREUR: acme.sh a echoue (exit $ACME_EXIT) et aucun certificat existant pour $DOMAIN" exit 1 fi - docker exec sonic-acme-1 cp /etc/acme.sh/$DOMAIN/fullchain.cer /host/certs/$DOMAIN-cert.pem - docker exec sonic-acme-1 cp /etc/acme.sh/$DOMAIN/$DOMAIN.key /host/certs/$DOMAIN-key.pem - echo "TLS OK (acme exit $ACME_EXIT)" # Images construites localement dans la pipeline : pas de docker compose pull - cd /opt/libredecision && docker compose up -d --remove-orphans - cd /opt/libredecision && docker compose ps