From f1ef9da857c3becc80c8b63f0568f93c732add2a Mon Sep 17 00:00:00 2001 From: jpbeldomenico Date: Mon, 3 Aug 2026 19:49:17 -0300 Subject: [PATCH] fix(ci): construir antes de bajar el servicio El despliegue hacia "docker compose down" y recien despues "up -d --build". Si la construccion fallaba, el taller quedaba caido hasta que alguien lo notara: paso el 03/08/2026, cuando npm no pudo bajar las dependencias y el sitio estuvo abajo sin que ningun paso lo avisara. Ahora la imagen se construye primero y solo despues se recrean los contenedores, sin bajar nada de antemano. Si la construccion falla, lo que estaba corriendo sigue en pie. Se agrega ademas una verificacion final: si al terminar no hay contenedores corriendo, el despliegue falla y muestra los registros, en lugar de dar por bueno un servicio caido. Co-Authored-By: Claude Opus 5 --- .gitea/workflows/deploy.yml | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 310f71e..b5c127c 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -10,9 +10,33 @@ jobs: steps: - name: Pull y rebuild run: | + set -eu git config --global --add safe.directory /home/proyecto/taller_automotriz cd /home/proyecto/taller_automotriz git fetch origin git reset --hard origin/main - docker compose down - docker compose up -d --build + + # Construir ANTES de tocar lo que esta corriendo. Antes este paso + # hacia "docker compose down" y recien despues "up --build": si la + # construccion fallaba (por ejemplo, npm sin poder bajar las + # dependencias), el taller quedaba caido hasta que alguien lo + # notara. Pasó el 03/08/2026. + docker compose build + + # Con la imagen nueva ya lista, "up -d" recrea los contenedores que + # cambiaron. No hace falta bajar nada de antemano. + docker compose up -d --no-build --remove-orphans + + - name: Verificar que quedo arriba + run: | + set -eu + cd /home/proyecto/taller_automotriz + docker compose ps + + # Si el contenedor no esta corriendo, el despliegue fallo aunque los + # comandos anteriores hayan salido bien. + if [ -z "$(docker compose ps --quiet --status running)" ]; then + echo "El despliegue termino sin contenedores corriendo" + docker compose logs --tail 50 + exit 1 + fi -- 2.52.0